@Override public NamespaceResolver getNamespaceResolver() { return marshalRecord.getNamespaceResolver(); }
@Override public NamespaceResolver getNamespaceResolver() { return marshalRecord.getNamespaceResolver(); }
protected void addTypeAttribute(MarshalRecord marshalRecord, String typeValue) { String xsiPrefix = null; if (marshalRecord.getNamespaceResolver() != null) { xsiPrefix = marshalRecord.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 = marshalRecord.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); }
String prefix = marshalRecord.getNamespaceResolver().resolveNamespaceURI(qname.getNamespaceURI()); if ((prefix == null) || prefix.length() == 0) { prefix = marshalRecord.getNamespaceResolver().generatePrefix(XMLConstants.SCHEMA_PREFIX); }else{ prefix = marshalRecord.getNamespaceResolver().generatePrefix();
if(getNamespaceResolver() != null && getNamespaceResolver().getDefaultNamespaceURI() != null) { NamespaceResolver namespaceResolver = getNamespaceResolver(); if(namespaceResolver == null){ throw XMLMarshalException.namespaceResolverNotSpecified(namespaceURI);
if(getNamespaceResolver() != null && getNamespaceResolver().getDefaultNamespaceURI() != null) { NamespaceResolver namespaceResolver = getNamespaceResolver(); if(namespaceResolver == null){ throw XMLMarshalException.namespaceResolverNotSpecified(namespaceURI);
protected String getPrefixForFragment(XPathFragment xPathFragment) { if(!hasCustomNamespaceMapper) { return xPathFragment.getPrefix(); } String uri = xPathFragment.getNamespaceURI(); if(uri == null || uri.length() == 0) { return Constants.EMPTY_STRING; } String defaultNamespace = getNamespaceResolver().getDefaultNamespaceURI(); if(defaultNamespace != null && defaultNamespace.equals(uri)) { return Constants.EMPTY_STRING; } String prefix = this.getNamespaceResolver().resolveNamespaceURI(uri); if(prefix != null) { return prefix; } for(Object next:getNamespaceResolver().getNamespaces()) { Namespace ns = (Namespace)next; uri = ns.getNamespaceURI(); prefix = ns.getPrefix(); } return xPathFragment.getPrefix(); }
protected String getPrefixForFragment(XPathFragment xPathFragment) { if(!hasCustomNamespaceMapper) { return xPathFragment.getPrefix(); } String uri = xPathFragment.getNamespaceURI(); if(uri == null || uri.length() == 0) { return Constants.EMPTY_STRING; } String defaultNamespace = getNamespaceResolver().getDefaultNamespaceURI(); if(defaultNamespace != null && defaultNamespace.equals(uri)) { return Constants.EMPTY_STRING; } String prefix = this.getNamespaceResolver().resolveNamespaceURI(uri); if(prefix != null) { return prefix; } for(Object next:getNamespaceResolver().getNamespaces()) { Namespace ns = (Namespace)next; uri = ns.getNamespaceURI(); prefix = ns.getPrefix(); } return xPathFragment.getPrefix(); }
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); }
/** * @since EclipseLink 2.5.0 */ @Override public boolean addXsiTypeAndClassIndicatorIfRequired( Descriptor xmlDescriptor, Descriptor referenceDescriptor, Field xmlField, Object originalObject, Object obj, boolean wasXMLRoot, boolean isRootElement) { validatingRecord.setNamespaceResolver(new NamespaceResolver(marshalRecord.getNamespaceResolver())); validatingRecord.addXsiTypeAndClassIndicatorIfRequired(xmlDescriptor, referenceDescriptor, xmlField, originalObject, obj, wasXMLRoot, isRootElement); return marshalRecord.addXsiTypeAndClassIndicatorIfRequired(xmlDescriptor, referenceDescriptor, xmlField, originalObject, obj, wasXMLRoot, isRootElement); }
/** * @since EclipseLink 2.5.0 */ @Override public boolean addXsiTypeAndClassIndicatorIfRequired( Descriptor xmlDescriptor, Descriptor referenceDescriptor, Field xmlField, Object originalObject, Object obj, boolean wasXMLRoot, boolean isRootElement) { validatingRecord.setNamespaceResolver(new NamespaceResolver(marshalRecord.getNamespaceResolver())); validatingRecord.addXsiTypeAndClassIndicatorIfRequired(xmlDescriptor, referenceDescriptor, xmlField, originalObject, obj, wasXMLRoot, isRootElement); return marshalRecord.addXsiTypeAndClassIndicatorIfRequired(xmlDescriptor, referenceDescriptor, xmlField, originalObject, obj, wasXMLRoot, isRootElement); }
if (xmlRootUri != null) { if (descriptor != null) { String xmlRootPrefix = marshalRecord.getNamespaceResolver().resolveNamespaceURI(xmlRootUri); if (xmlRootPrefix == null && !(xmlRootUri.equals(marshalRecord.getNamespaceResolver().getDefaultNamespaceURI()))) { xmlRootPrefix = marshalRecord.getNamespaceResolver().generatePrefix(); marshalRecord.getNamespaceResolver().put(xmlRootPrefix, xmlRootUri); marshalRecord.getNamespaceResolver().put(xmlRootPrefix, xmlRootUri); rootFragment.setXPath(xmlRootPrefix + XMLConstants.COLON + xmlRootLocalName);
private Namespace setupFragment(XMLRoot originalValue, XPathFragment xmlRootFragment, MarshalRecord marshalRecord) { Namespace generatedNamespace = null; String xpath = originalValue.getLocalName(); if (originalValue.getNamespaceURI() != null) { xmlRootFragment.setNamespaceURI((originalValue).getNamespaceURI()); String prefix = marshalRecord.getNamespaceResolver().resolveNamespaceURI((originalValue).getNamespaceURI()); if (prefix == null || prefix.length() == 0) { prefix = marshalRecord.getNamespaceResolver().generatePrefix("ns0"); generatedNamespace = new Namespace(prefix, xmlRootFragment.getNamespaceURI()); } xpath = prefix + XMLConstants.COLON + xpath; } xmlRootFragment.setXPath(xpath); return generatedNamespace; }
protected Node objectToXMLNode(Object object, Node rootNode, ABSTRACT_SESSION session, DESCRIPTOR descriptor, boolean isXMLRoot) throws XMLMarshalException { MarshalRecord marshalRecord = new NodeRecord(); marshalRecord.setMarshaller(this); marshalRecord.getNamespaceResolver().setDOM(rootNode); marshal(object, marshalRecord, session, descriptor, isXMLRoot); return marshalRecord.getDocument(); }
private Namespace setupFragment(XMLRoot originalValue, XPathFragment xmlRootFragment, MarshalRecord marshalRecord) { Namespace generatedNamespace = null; String xpath = originalValue.getLocalName(); if (originalValue.getNamespaceURI() != null) { xmlRootFragment.setNamespaceURI((originalValue).getNamespaceURI()); String prefix = marshalRecord.getNamespaceResolver().resolveNamespaceURI((originalValue).getNamespaceURI()); if (prefix == null || prefix.length() == 0) { prefix = marshalRecord.getNamespaceResolver().generatePrefix(); generatedNamespace = new Namespace(prefix, xmlRootFragment.getNamespaceURI()); } xpath = prefix + XMLConstants.COLON + xpath; } xmlRootFragment.setXPath(xpath); return generatedNamespace; }
protected Node objectToXMLNode(Object object, Node rootNode, ABSTRACT_SESSION session, DESCRIPTOR descriptor, boolean isXMLRoot) throws XMLMarshalException { MarshalRecord marshalRecord = new NodeRecord(); marshalRecord.setMarshaller(this); marshalRecord.getNamespaceResolver().setDOM(rootNode); marshal(object, marshalRecord, session, descriptor, isXMLRoot); return marshalRecord.getDocument(); }
String xmlRootPrefix = marshalRecord.getNamespaceResolver().resolveNamespaceURI(xmlRootUri); if (xmlRootPrefix == null && !(xmlRootUri.equals(marshalRecord.getNamespaceResolver().getDefaultNamespaceURI()))) { xmlRootPrefix = marshalRecord.getNamespaceResolver().generatePrefix(); marshalRecord.getNamespaceResolver().put(xmlRootPrefix, xmlRootUri); if(marshalRecord.isNamespaceAware()){ String xmlRootPrefix = "ns0"; marshalRecord.getNamespaceResolver().put(xmlRootPrefix, xmlRootUri); rootFragment.setXPath(xmlRootPrefix + marshalRecord.getNamespaceSeparator() + xmlRootLocalName); }else{
marshalRecord.getNamespaceResolver().put(xopPrefix, XMLConstants.XOP_URL); marshalRecord.getNamespaceResolver().removeNamespace(XMLConstants.XOP_PREFIX); return true;
protected Node objectToXMLNode(Object object, Node rootNode, AbstractSession session,XMLDescriptor descriptor, boolean isXMLRoot) throws XMLMarshalException { DocumentPreservationPolicy docPresPolicy = xmlContext.getDocumentPreservationPolicy(session); if (docPresPolicy != null && docPresPolicy.shouldPreserveDocument()) { XMLRecord xmlRow = null; if (!isXMLRoot) { xmlRow = (XMLRecord) ((XMLObjectBuilder) descriptor.getObjectBuilder()).createRecordFor(object, xmlContext.getDocumentPreservationPolicy(session)); xmlRow.setMarshaller(this); if (getAttachmentMarshaller() != null) { xmlRow.setXOPPackage(getAttachmentMarshaller().isXOPPackage()); } if (xmlRow.getDOM().getNodeType() == Node.ELEMENT_NODE) { addDescriptorNamespacesToXMLRecord(descriptor, xmlRow); } } Document doc = objectToXML(object, rootNode, descriptor, xmlRow, isXMLRoot, docPresPolicy); if ((xmlRow != null) && (xmlRow.getDOM().getNodeType() == Node.DOCUMENT_FRAGMENT_NODE)) { return xmlRow.getDOM(); } else { return doc; } } MarshalRecord marshalRecord = new NodeRecord(); marshalRecord.setMarshaller(this); marshalRecord.getNamespaceResolver().setDOM(rootNode); marshal(object, marshalRecord, session, descriptor, isXMLRoot); return marshalRecord.getDocument(); }
private void marshalSimpleValue(XPathFragment xmlRootFragment, MarshalRecord marshalRecord, Object originalValue, Object object, Object value, AbstractSession session, NamespaceResolver namespaceResolver) { if (xmlRootFragment != null) { QName qname = ((XMLRoot) originalValue).getSchemaType(); value = getValueToWrite(qname, value, (XMLConversionManager) session.getDatasourcePlatform().getConversionManager(), namespaceResolver); Namespace generatedNamespace = setupFragment(((XMLRoot) originalValue), xmlRootFragment, marshalRecord); getXPathNode().startElement(marshalRecord, xmlRootFragment, object, session, namespaceResolver, null, null); if (generatedNamespace != null) { marshalRecord.attribute(XMLConstants.XMLNS_URL, generatedNamespace.getPrefix(), XMLConstants.XMLNS + XMLConstants.COLON + generatedNamespace.getPrefix(), generatedNamespace.getNamespaceURI()); } updateNamespaces(qname, marshalRecord, null); } if (value instanceof String) { marshalRecord.characters((String) value); } else { marshalRecord.node((org.w3c.dom.Node) value, marshalRecord.getNamespaceResolver()); } if (xmlRootFragment != null) { marshalRecord.endElement(xmlRootFragment, namespaceResolver); } }