public NamespaceResolver getNamespaceResolverForDescriptor() { if(this.namespaceResolverForDescriptor == null) { this.namespaceResolverForDescriptor = new NamespaceResolver(); if(this.namespaceResolver.hasPrefixesToNamespaces()) { for(String next:this.namespaceResolver.getPrefixesToNamespaces().keySet()) { this.namespaceResolverForDescriptor.put(next, this.namespaceResolver.resolveNamespacePrefix(next)); } } this.namespaceResolverForDescriptor.setDefaultNamespaceURI(namespaceResolver.getDefaultNamespaceURI()); } return this.namespaceResolverForDescriptor; } }
/** * INTERNAL: * Private function to process or create an entry in the NamespaceResolver for the xsi prefix. * @param namespaceResolver * @return xsi prefix */ protected String processNamespaceResolverForXSIPrefix(NamespaceResolver namespaceResolver) { String xsiPrefix; if (null == namespaceResolver) { // add new xsi entry into the properties map xsiPrefix = XMLConstants.SCHEMA_INSTANCE_PREFIX; namespaceResolver = new NamespaceResolver(); namespaceResolver.put(xsiPrefix, XMLConstants.SCHEMA_INSTANCE_URL); } else { // find an existing xsi entry in the map xsiPrefix = namespaceResolver.resolveNamespaceURI(XMLConstants.SCHEMA_INSTANCE_URL); if (null == xsiPrefix) { xsiPrefix = namespaceResolver.generatePrefix(); } } return xsiPrefix; }
public void addNamespaceDeclarations(Document document) { NamespaceResolver namespaceResolver = getNamespaceResolver(); if (namespaceResolver == null) { return; } Element docElement = document.getDocumentElement(); if(namespaceResolver.getDefaultNamespaceURI() != null) { docElement.setAttributeNS(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI, javax.xml.XMLConstants.XMLNS_ATTRIBUTE, namespaceResolver.getDefaultNamespaceURI()); } Enumeration prefixes = namespaceResolver.getPrefixes(); String prefix; String namespace; while (prefixes.hasMoreElements()) { prefix = (String)prefixes.nextElement(); namespace = namespaceResolver.resolveNamespacePrefix(prefix); docElement.setAttributeNS(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI, javax.xml.XMLConstants.XMLNS_ATTRIBUTE + Constants.COLON + prefix, namespace); } }
public String generatePrefix(String defaultPrefix) { String lookup = resolveNamespacePrefix(defaultPrefix); while (lookup != null) { defaultPrefix = getNextPrefix(); lookup = resolveNamespacePrefix(defaultPrefix); } return defaultPrefix; }
private String getNamespacePrefixForDescriptorNamespaceResolver(String namespace, NamespaceResolver contextResolver) { String prefix = contextResolver.resolveNamespaceURI(namespace); while (prefix == null || namespaceResolverForDescriptor.hasPrefix(prefix)) { prefix = contextResolver.generatePrefix(); } return prefix; } }
private void copyNamespaces(NamespaceResolver source, NamespaceResolver target) { if (null != source && null != target) { if(source.hasPrefixesToNamespaces()) { target.getPrefixesToNamespaces().putAll(source.getPrefixesToNamespaces()); } target.setDefaultNamespaceURI(source.getDefaultNamespaceURI()); } } }
NamespaceResolver nr = new NamespaceResolver(); NamespaceResolver nextNR = (NamespaceResolver)namespaceResolvers.get(i); if (nextNR != null) { for (int j = 0, size = nextNR.getNamespaces().size(); j < size; j++) { Namespace nextNamespace = (Namespace)nextNR.getNamespaces().get(j); if ((!nextNamespace.getPrefix().equals(javax.xml.XMLConstants.XMLNS_ATTRIBUTE)) && (!nextNamespace.getNamespaceURI().equals(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOJAVA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOXML_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDO_URL))) { String newPrefix = ((SDOTypeHelper)aHelperContext.getTypeHelper()).addNamespace(nextNamespace.getPrefix(), nextNamespace.getNamespaceURI()); nr.put(newPrefix, nextNamespace.getNamespaceURI()); if (getURI() != null) { String prefix = ((SDOTypeHelper)aHelperContext.getTypeHelper()).getPrefix(getURI()); xmlDescriptor.getNamespaceResolver().put(prefix, getURI()); xmlDescriptor.getNamespaceResolver().put(XMLConstants.SCHEMA_INSTANCE_PREFIX, javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
defaultNamespace = nr.getDefaultNamespaceURI(); if (defaultNamespace != null) { schema.setDefaultNamespace(defaultNamespace); schema.getNamespaceResolver().setDefaultNamespaceURI(defaultNamespace); String prefix = null; if (nr != null) { prefix = nr.resolveNamespaceURI(uri); prefix = schema.getNamespaceResolver().generatePrefix(); schema.getNamespaceResolver().put(prefix, uri);
/** * INTERNAL: */ protected static XMLContext createXMLContext(String namespaceURI) { Project project = new Project(); NamespaceResolver resolver = new NamespaceResolver(); resolver.setDefaultNamespaceURI(namespaceURI); project.addDescriptor(buildPersistenceXMLDescriptor(resolver)); project.addDescriptor(buildPUInfoDescriptor(resolver)); project.addDescriptor(buildPUPropertyDescriptor(resolver)); return new XMLContext(project); } }
namespaceResolver = getNonNullNamespaceResolver(); if(parentNamespaceResolver.hasPrefixesToNamespaces()) { for(Entry<String, String> entry : parentNamespaceResolver.getPrefixesToNamespaces().entrySet()) { String namespaceURI = namespaceResolver.resolveNamespacePrefix(entry.getKey()); if(null == namespaceURI) { namespaceResolver.put(entry.getKey(), entry.getValue()); } else if(!namespaceURI.equals(entry.getValue())) { throw XMLMarshalException.subclassAttemptedToOverrideNamespaceDeclaration(entry.getKey(), getJavaClassName(), namespaceURI, parentDescriptor.getJavaClassName(), entry.getValue());
return null; java.util.Vector namespaces = namespaceInfo.getNamespaceResolver().getNamespaces(); for (int i = 0; i < namespaces.size(); i++) { Namespace nextNamespace = (Namespace) namespaces.get(i); schema.getNamespaceResolver().put(nextNamespace.getPrefix(), nextNamespace.getNamespaceURI()); String prefix = null; if (namespaceInfo != null) { prefix = namespaceInfo.getNamespaceResolver().resolveNamespaceURI(namespace); prefix = schema.getNamespaceResolver().generatePrefix(); schema.getNamespaceResolver().put(prefix, namespace);
private boolean addNextNamespaceResolver(Map attributesMap) { NamespaceResolver nr = new NamespaceResolver(); Iterator iter = attributesMap.keySet().iterator(); while (iter.hasNext()) { QName key = (QName) iter.next(); if (key.getNamespaceURI().equals(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI)) { String value = (String) attributesMap.get(key); String prefix = key.getLocalPart(); int index = prefix.indexOf(':'); if (index > -1) { prefix = prefix.substring(index + 1, prefix.length()); } nr.put(prefix, value); } } if (nr.getPrefixes().hasMoreElements()) { namespaceResolvers.add(nr); return true; } return false; }
private void addToDescriptorNamespaceResolver( boolean asDefault, String prefix, String namespace, NamespaceResolver contextResolver) { String contextDefault = contextResolver.getDefaultNamespaceURI(); if (asDefault && (contextDefault == null || contextDefault.equals(namespace))) { this.namespaceResolverForDescriptor.setDefaultNamespaceURI(namespace); contextResolver.setDefaultNamespaceURI(namespace); } else { String newPrefix = prefix == null || contextResolver.hasPrefix(prefix) || namespaceResolverForDescriptor.hasPrefix(prefix) ? getNamespacePrefixForDescriptorNamespaceResolver(namespace, contextResolver) : prefix; this.namespaceResolverForDescriptor.put(newPrefix, namespace); contextResolver.put(newPrefix, namespace); } }
public NamespaceResolver getNonNullNamespaceResolver() { if (namespaceResolver == null) { namespaceResolver = new NamespaceResolver(); } return namespaceResolver; }
if (defaultNamespace != null) { schema.setDefaultNamespace(defaultNamespace); schema.getNamespaceResolver().setDefaultNamespaceURI(defaultNamespace); prefix = schema.getNamespaceResolver().generatePrefix(); schema.getNamespaceResolver().put(prefix, uri);
private void addXsiNilToElement(Element element, Field xmlField) { NamespaceResolver nsr = new NamespaceResolver(); nsr.setDOM(element); String schemaInstancePrefix = resolveNamespacePrefixForURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, nsr); Node parentNode = element.getParentNode(); while(schemaInstancePrefix == null && parentNode != null && parentNode.getNodeType() == Node.ELEMENT_NODE){ nsr.setDOM(element); schemaInstancePrefix = resolveNamespacePrefixForURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, nsr); parentNode = parentNode.getParentNode(); } if(schemaInstancePrefix == null && element.getOwnerDocument() != null){ nsr.setDOM(element.getOwnerDocument().getDocumentElement()); schemaInstancePrefix = resolveNamespacePrefixForURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, nsr); } if(schemaInstancePrefix == null) { //Not decalred in the doc nsr = getNamespaceResolverForField(xmlField); schemaInstancePrefix = nsr.resolveNamespaceURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); if(schemaInstancePrefix == null) { schemaInstancePrefix = nsr.generatePrefix(Constants.SCHEMA_INSTANCE_PREFIX); } element.setAttributeNS(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI, javax.xml.XMLConstants.XMLNS_ATTRIBUTE + Constants.COLON + schemaInstancePrefix, javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); } element.setAttributeNS(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, Constants.SCHEMA_INSTANCE_PREFIX + Constants.COLON + Constants.SCHEMA_NIL_ATTRIBUTE, Constants.BOOLEAN_STRING_TRUE); } }
private void copyNamespaces(NamespaceResolver source, NamespaceResolver target) { if (null != source && null != target) { target.getPrefixesToNamespaces().putAll(source.getPrefixesToNamespaces()); target.setDefaultNamespaceURI(source.getDefaultNamespaceURI()); } }
/** * Adds each namespace in the given resolver to the schema. * * @param nr * @param workingSchema */ protected void addNamespacesToWorkingSchema(NamespaceResolver nr, Schema workingSchema) { if (nr != null) { Vector<Namespace> descNamespaces = nr.getNamespaces(); for (Namespace nextNamespace : descNamespaces) { workingSchema.getNamespaceResolver().put(nextNamespace.getPrefix(), nextNamespace.getNamespaceURI()); } } }
protected void addTypeAttribute(XMLDescriptor descriptor, MarshalRecord marshalRecord, String schemaContext) { String typeValue = schemaContext.substring(1); String xsiPrefix = null; if (descriptor.getNamespaceResolver() != null) { xsiPrefix = descriptor.getNamespaceResolver().resolveNamespaceURI(XMLConstants.SCHEMA_INSTANCE_URL); } else { xsiPrefix = XMLConstants.SCHEMA_INSTANCE_PREFIX; marshalRecord.attribute(XMLConstants.XMLNS_URL, xsiPrefix, XMLConstants.XMLNS + XMLConstants.COLON + xsiPrefix, XMLConstants.SCHEMA_INSTANCE_URL); } if (xsiPrefix == null) { xsiPrefix = descriptor.getNamespaceResolver().generatePrefix(XMLConstants.SCHEMA_INSTANCE_PREFIX); marshalRecord.attribute(XMLConstants.XMLNS_URL, xsiPrefix, XMLConstants.XMLNS + XMLConstants.COLON + xsiPrefix, XMLConstants.SCHEMA_INSTANCE_URL); } marshalRecord.attribute(XMLConstants.SCHEMA_INSTANCE_URL, XMLConstants.SCHEMA_TYPE_ATTRIBUTE, xsiPrefix + XMLConstants.COLON + XMLConstants.SCHEMA_TYPE_ATTRIBUTE, typeValue); }
NamespaceResolver parentNR = parentDescriptor.getNonNullNamespaceResolver(); if (parentNR != null) { for (int i = 0; i < parentNR.getNamespaces().size(); i++) { Namespace nextNamespace = (Namespace)parentNR.getNamespaces().get(i); if ((!nextNamespace.getPrefix().equals(javax.xml.XMLConstants.XMLNS_ATTRIBUTE)) && (!nextNamespace.getNamespaceURI().equals(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOJAVA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOXML_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDO_URL))) { getXmlDescriptor().getNonNullNamespaceResolver().put(nextNamespace.getPrefix(), nextNamespace.getNamespaceURI()); String prefix = parentDescriptor.getNamespaceResolver().resolveNamespaceURI(getURI()); if (prefix == null) { prefix = getXmlDescriptor().getNamespaceResolver().resolveNamespaceURI(getURI()); if (prefix != null) { parentDescriptor.getNamespaceResolver().put(prefix, getURI()); getXmlDescriptor().getInheritancePolicy().setParentClass(parentClass); getXmlDescriptor().getInheritancePolicy().setParentDescriptor(parentType.getXmlDescriptor()); parentType.getXmlDescriptor().getNamespaceResolver().put(XMLConstants.SCHEMA_INSTANCE_PREFIX, javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); getXmlDescriptor().getNamespaceResolver().put(XMLConstants.SCHEMA_INSTANCE_PREFIX, javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);