if (xmlRef != null) { if (leafType == null) { if (xmlRef.getType() == XMLSchemaReference.ELEMENT) { return false; return true; } else if (((xmlRef.getType() == XMLSchemaReference.COMPLEX_TYPE) || (xmlRef.getType() == XMLSchemaReference.SIMPLE_TYPE)) && xmlRef.getSchemaContext() != null && xmlRef.isGlobalDefinition()) { QName ctxQName = xmlRef.getSchemaContextAsQName(descriptor.getNamespaceResolver()); if (!ctxQName.equals(leafType)) { writeXsiTypeAttribute(descriptor, xmlRef, isRootElement);
private void initializeSchemas() { if (!schemasAreInitialized) { HashSet schemas = new HashSet(); Iterator xmlDescriptors; XMLDescriptor xmlDescriptor; XMLSchemaReference xmlSchemaReference; int numberOfSessions = ((XMLContext) context).getSessions().size(); for (int x = 0; x < numberOfSessions; x++) { xmlDescriptors = ((CoreSession)context.getSessions().get(x)).getDescriptors().values().iterator(); URL schemaURL; while (xmlDescriptors.hasNext()) { xmlDescriptor = (XMLDescriptor)xmlDescriptors.next(); xmlSchemaReference = xmlDescriptor.getSchemaReference(); if (null != xmlSchemaReference) { schemaURL = xmlSchemaReference.getURL(); if (null != schemaURL) { schemas.add(schemaURL.toString()); } } } } schemas.remove(null); platformUnmarshaller.setSchemas(schemas.toArray()); schemasAreInitialized = true; } }
/** * <p>INTERNAL: */ @SuppressWarnings("rawtypes") public void buildDescriptorIndex() { for (Iterator i = xrService.oxSession.getProject().getOrderedDescriptors().iterator(); i.hasNext();) { XMLDescriptor xd = (XMLDescriptor)i.next(); XMLSchemaReference schemaReference = xd.getSchemaReference(); if (schemaReference != null && schemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) { String context = schemaReference.getSchemaContext(); if (context != null && context.lastIndexOf(SLASH_CHAR) == 0) { String elementNameNS = context.substring(1); QName elementName = resolveName(elementNameNS, xd.getNamespaceResolver()); if (elementName == null) { continue; } xrService.descriptorsByQName.put(elementName, xd); } } } }
String schemaContext = xmlSchemaReference.getSchemaContext(); if ((xmlSchemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) || (xmlSchemaReference.getType() == XMLSchemaReference.SIMPLE_TYPE)) { if ((null != schemaContext) && (schemaContext.lastIndexOf('/') == 0)) { schemaContext = schemaContext.substring(1, schemaContext.length()); QName qname = xmlSchemaReference.getSchemaContextAsQName(); if (qname != null) { if (xmlDescriptor.isWrapper() && xmlDescriptor.getJavaClassName().contains("ObjectWrapper")) {
private void writeTypeAttribute(MarshalRecord marshalRecord, XMLDescriptor descriptor, String xsiPrefix) { //xsi:type=schemacontext String typeValue = descriptor.getSchemaReference().getSchemaContext(); // handle case where the schema context is set as a QName if (typeValue == null) { QName contextAsQName = descriptor.getSchemaReference().getSchemaContextAsQName(); if (contextAsQName == null) { return; } String uri = contextAsQName.getNamespaceURI(); String localPart = contextAsQName.getLocalPart(); String prefix = marshalRecord.getNamespaceResolver().resolveNamespaceURI(uri); if (prefix == null) { String defaultUri = marshalRecord.getNamespaceResolver().getDefaultNamespaceURI(); if (defaultUri != null && defaultUri.equals(uri)) { typeValue = localPart; } else { prefix = marshalRecord.getNamespaceResolver().generatePrefix(); marshalRecord.attribute(XMLConstants.XMLNS_URL, prefix, XMLConstants.XMLNS + XMLConstants.COLON + prefix, uri); typeValue = prefix + XMLConstants.COLON + localPart; } } else { typeValue = prefix + XMLConstants.COLON + localPart; } } else { typeValue = typeValue.substring(1); } marshalRecord.attribute(XMLConstants.SCHEMA_INSTANCE_URL, XMLConstants.SCHEMA_TYPE_ATTRIBUTE, xsiPrefix + XMLConstants.COLON + XMLConstants.SCHEMA_TYPE_ATTRIBUTE, typeValue); }
@Override public void writeXsiTypeAttribute(Descriptor xmlDescriptor, XMLSchemaReference xmlRef, boolean addToNamespaceResolver) { QName contextAsQName = xmlRef.getSchemaContextAsQName(); if(contextAsQName == null){ contextAsQName = xmlRef.getSchemaContextAsQName(namespaceResolver); } if (contextAsQName != null) { writeXsiTypeAttribute(xmlDescriptor, contextAsQName.getNamespaceURI(), contextAsQName.getLocalPart(), null, addToNamespaceResolver); } }
defaultRootElementField.initialize(); if(schemaReference != null && schemaReference.getSchemaContext() != null && (schemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE || schemaReference.getType() == XMLSchemaReference.SIMPLE_TYPE) && getDefaultRootElementType() == null){ setDefaultRootElementType(schemaReference.getSchemaContextAsQName(getNamespaceResolver())); setDefaultRootElementType(schemaReference.getSchemaContextAsQName(getNamespaceResolver())); getSchemaReference().initialize(session);
QName qName = schemaReference.getSchemaContextAsQName(entityDescriptor.getNamespaceResolver()); if(null == qName) { throw SDOException.sdoJaxbNoSchemaContext(entityClass); if(entityDescriptor.getSchemaReference().getType() == XMLSchemaReference.COMPLEX_TYPE) { wrapperType = getTypeHelper().getType(qName.getNamespaceURI(), qName.getLocalPart()); } else {
/** * INTERNAL: */ public boolean shouldAddXsiType(XMLRecord record, ClassDescriptor aDescriptor) { XMLDescriptor xmlDescriptor = (XMLDescriptor) aDescriptor; if ((getReferenceDescriptor() == null) && (xmlDescriptor.getSchemaReference() != null)) { if (aDescriptor.hasInheritance()) { XMLField indicatorField = (XMLField) aDescriptor.getInheritancePolicy().getClassIndicatorField(); if ((indicatorField.getLastXPathFragment().getNamespaceURI() != null) // && indicatorField.getLastXPathFragment().getNamespaceURI().equals(XMLConstants.SCHEMA_INSTANCE_URL) // && indicatorField.getLastXPathFragment().getLocalName().equals(XMLConstants.SCHEMA_TYPE_ATTRIBUTE)) { return false; } } XMLSchemaReference xmlRef = xmlDescriptor.getSchemaReference(); if ((xmlRef.getType() == XMLSchemaReference.COMPLEX_TYPE) && xmlRef.isGlobalDefinition()) { QName ctxQName = xmlRef.getSchemaContextAsQName(xmlDescriptor.getNamespaceResolver()); QName leafType = ((XMLField) getField()).getLeafElementType(); if ((leafType == null) || (!ctxQName.equals(record.getLeafElementType()))) { return true; } } } return false; }
protected void addTypeAttributeIfNeeded(XMLDescriptor descriptor, DatabaseMapping mapping, MarshalRecord marshalRecord) { XMLSchemaReference xmlRef = descriptor.getSchemaReference(); if (xmlCompositeCollectionMapping.shouldAddXsiType(marshalRecord, descriptor) && (xmlRef != null)) { addTypeAttribute(descriptor, marshalRecord, xmlRef.getSchemaContext()); } }
protected ClassDescriptor buildDatabaseFieldDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(DatabaseField.class); descriptor.setDefaultRootElement("field"); descriptor.getInheritancePolicy().setClassIndicatorField(new XMLField("@xsi:type")); descriptor.getInheritancePolicy().addClassIndicator(DatabaseField.class, getSecondaryNamespaceXPath() + "column"); descriptor.getInheritancePolicy().addClassIndicator(XMLField.class, getPrimaryNamespaceXPath() + "node"); descriptor.getInheritancePolicy().addClassIndicator(XMLUnionField.class, getPrimaryNamespaceXPath() + "union-node"); XMLSchemaReference reference = new XMLSchemaClassPathReference(); reference.setSchemaContext("/"+ getSecondaryNamespaceXPath() + "column"); descriptor.setSchemaReference(reference); XMLDirectMapping tableMapping = new XMLDirectMapping(); tableMapping.setAttributeName("table"); tableMapping.setGetMethodName("getTableName"); tableMapping.setSetMethodName("setTableName"); tableMapping.setXPath("@table"); tableMapping.setNullValue(""); descriptor.addMapping(tableMapping); XMLDirectMapping nameMapping = new XMLDirectMapping(); nameMapping.setAttributeName("name"); nameMapping.setGetMethodName("getName"); nameMapping.setSetMethodName("setName"); nameMapping.setXPath("@name"); nameMapping.getNullPolicy().setNullRepresentedByEmptyNode(false); descriptor.addMapping(nameMapping); return descriptor; }
schemaRef.setSchemaContext(schemaContextWithSlash); schemaRef.setType(XMLSchemaReference.COMPLEX_TYPE); getXmlDescriptor().setSchemaReference(schemaRef);
/** * Validate the given root object. * @param rootObject A single root object to validate * @return true if this is a valid object, otherwise false */ public boolean validateRoot(Object rootObject) throws XMLMarshalException { if (rootObject == null) { throw XMLMarshalException.nullArgumentException(); } XMLDescriptor xmlDescriptor = (XMLDescriptor)xmlContext.getSession(rootObject).getDescriptor(rootObject); Document document = marshaller.objectToXML(rootObject, xmlDescriptor, false); if (xmlDescriptor.getSchemaReference() == null) { throw XMLMarshalException.schemaReferenceNotSet(xmlDescriptor); } return xmlDescriptor.getSchemaReference().isValid(document, getErrorHandler()); }
getInstantiationPolicy().initialize(session); if (getSchemaReference() != null) { getSchemaReference().initialize(session);
@Override public void writeXsiTypeAttribute(Descriptor xmlDescriptor, XMLSchemaReference xmlRef, boolean addToNamespaceResolver) { QName contextAsQName = xmlRef.getSchemaContextAsQName(); if(contextAsQName == null){ contextAsQName = xmlRef.getSchemaContextAsQName(namespaceResolver); } if (contextAsQName != null) { writeXsiTypeAttribute(xmlDescriptor, contextAsQName.getNamespaceURI(), contextAsQName.getLocalPart(), null, addToNamespaceResolver); } }
String schemaContext = xmlSchemaReference.getSchemaContext(); if ((xmlSchemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) || (xmlSchemaReference.getType() == XMLSchemaReference.SIMPLE_TYPE)) { if ((null != schemaContext) && (schemaContext.lastIndexOf('/') == 0)) { schemaContext = schemaContext.substring(1, schemaContext.length()); if (null != descriptor.getNamespaceResolver()) { String uri = descriptor.getNamespaceResolver().resolveNamespacePrefix(typeFragment.getPrefix()); if(uri == null && xmlSchemaReference.getSchemaContextAsQName() != null){ uri = xmlSchemaReference.getSchemaContextAsQName().getNamespaceURI(); QName qname = xmlSchemaReference.getSchemaContextAsQName(); if (qname != null) { if (descriptor.isWrapper() && descriptor.getJavaClassName().contains("ObjectWrapper")) {
defaultRootElementField.initialize(); if(schemaReference != null && schemaReference.getSchemaContext() != null && (schemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE || schemaReference.getType() == XMLSchemaReference.SIMPLE_TYPE) && getDefaultRootElementType() == null){ setDefaultRootElementType(schemaReference.getSchemaContextAsQName(getNamespaceResolver())); setDefaultRootElementType(schemaReference.getSchemaContextAsQName(getNamespaceResolver())); getSchemaReference().initialize(session);
/** * <p>INTERNAL: */ @SuppressWarnings("rawtypes") public void buildDescriptorIndex() { for (Iterator i = xrService.oxSession.getProject().getOrderedDescriptors().iterator(); i.hasNext();) { XMLDescriptor xd = (XMLDescriptor)i.next(); XMLSchemaReference schemaReference = xd.getSchemaReference(); if (schemaReference != null && schemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) { String context = schemaReference.getSchemaContext(); if (context != null && context.lastIndexOf(SLASH_CHAR) == 0) { String elementNameNS = context.substring(1); QName elementName = resolveName(elementNameNS, xd.getNamespaceResolver()); if (elementName == null) { continue; } xrService.descriptorsByQName.put(elementName, xd); } } } }
String schemaContext = ((SDOType)value.getType()).getXmlDescriptor().getSchemaReference().getSchemaContext(); QName schemaContextQName = ((SDOType)value.getType()).getXmlDescriptor().getSchemaReference().getSchemaContextAsQName(((SDOType)value.getType()).getXmlDescriptor().getNonNullNamespaceResolver());
QName qName = schemaReference.getSchemaContextAsQName(entityDescriptor.getNamespaceResolver()); if(null == qName) { throw SDOException.sdoJaxbNoSchemaContext(entityClass); if(entityDescriptor.getSchemaReference().getType() == XMLSchemaReference.COMPLEX_TYPE) { wrapperType = getTypeHelper().getType(qName.getNamespaceURI(), qName.getLocalPart()); } else {