/** * INTERNAL: */ public void attribute(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, String value) { String namespaceURI = resolveNamespacePrefix(xPathFragment, namespaceResolver); attribute(namespaceURI, xPathFragment.getLocalName(), getNameForFragment(xPathFragment), value); }
@Override public void characters(String value) { validatingRecord.characters(value); marshalRecord.characters(value); }
/** * INTERNAL: */ public void characters(String value) { if (isStartElementOpen) { openAndCloseStartElement(); isStartElementOpen = false; } try { char[] characters = value.toCharArray(); contentHandler.characters(characters, 0, characters.length); } catch (SAXException e) { throw XMLMarshalException.marshalException(e); } }
ContentHandlerRecord contentHandlerRecord = new ContentHandlerRecord(); contentHandlerRecord.setMarshaller(this); contentHandlerRecord.setContentHandler(contentHandler); contentHandlerRecord.setLexicalHandler(lexicalHandler); marshal(object, contentHandlerRecord, session, xmlDescriptor,isXMLRoot);
public ValidatingMarshalRecord(MarshalRecord marshalRecord, XMLMarshaller xmlMarshaller) { this.marshalRecord = marshalRecord; Schema schema = xmlMarshaller.getSchema(); ValidatorHandler validatorHandler = schema.newValidatorHandler(); validatorHandler.setErrorHandler(new ValidatingMarshalRecordErrorHandler(marshalRecord, xmlMarshaller.getErrorHandler())); if(xmlMarshaller.isFragment()) { try { validatorHandler.startDocument(); } catch (SAXException e) { } } validatingRecord = new ContentHandlerRecord(); validatingRecord.setMarshaller(xmlMarshaller); validatingRecord.setContentHandler(validatorHandler); validatingRecord.setEqualNamespaceResolvers(marshalRecord.hasEqualNamespaceResolvers()); }
ContentHandlerRecord marshalRecord = new ContentHandlerRecord(); marshalRecord.setContentHandler(((SAXResult)result).getHandler()); marshalRecord.setMarshaller(anXMLMarshaller); listener.setRootMarshalRecord(marshalRecord); anXMLMarshaller.marshal(xmlDocument, marshalRecord); marshalRecord.flush(); } else if(result instanceof DOMResult) { NodeRecord marshalRecord = new NodeRecord();
Attr attr = (Attr) node; String resolverPfx = null; if (getNamespaceResolver() != null) { resolverPfx = this.getNamespaceResolver().resolveNamespaceURI(attr.getNamespaceURI()); attribute(namespaceURI, localName, resolverPfx+Constants.COLON+attr.getLocalName(), attr.getNodeValue()); } else { attribute(namespaceURI, localName, attr.getName(), attr.getNodeValue()); attribute(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI, localName , javax.xml.XMLConstants.XMLNS_ATTRIBUTE + Constants.COLON + attr.getPrefix(), attr.getNamespaceURI()); this.getNamespaceResolver().put(attr.getPrefix(), attr.getNamespaceURI()); openAndCloseStartElement(); isStartElementOpen = false; characters(node.getNodeValue()); } else { XMLFragmentReader xfragReader = new XMLFragmentReader(namespaceResolver);
attribute(attr.getNamespaceURI(), XMLConstants.EMPTY_STRING, resolverPfx+XMLConstants.COLON+attr.getLocalName(), attr.getNodeValue()); } else { attribute(attr.getNamespaceURI(), XMLConstants.EMPTY_STRING, attr.getName(), attr.getNodeValue()); attribute(XMLConstants.XMLNS_URL, XMLConstants.EMPTY_STRING,XMLConstants.XMLNS + XMLConstants.COLON + attr.getPrefix(), attr.getNamespaceURI()); openAndCloseStartElement(); isStartElementOpen = false; characters(node.getNodeValue()); } else { XMLFragmentReader xfragReader = new XMLFragmentReader(namespaceResolver);
/** * INTERNAL: */ public void cdata(String value) { //No specific support for CDATA in a ContentHandler. Just treat as regular //Character data as a SAX parser would. if (isStartElementOpen) { openAndCloseStartElement(); isStartElementOpen = false; } try { if(lexicalHandler != null) { lexicalHandler.startCDATA(); } characters(value); if(lexicalHandler != null) { lexicalHandler.endCDATA(); } } catch(SAXException ex) { throw XMLMarshalException.marshalException(ex); } }
/** * INTERNAL: */ public void endElement(XPathFragment xPathFragment, NamespaceResolver namespaceResolver) { if (isStartElementOpen) { openAndCloseStartElement(); isStartElementOpen = false; } try { String uri = xPathFragment.getNamespaceURI(); if(uri == null) { uri = Constants.EMPTY_STRING; } contentHandler.endElement(uri, xPathFragment.getLocalName(), getNameForFragment(xPathFragment)); List<String> currentLevelPrefixMappings = prefixMappings.remove(prefixMappings.size()-1); if(null != currentLevelPrefixMappings) { for(String prefix : currentLevelPrefixMappings) { contentHandler.endPrefixMapping(prefix); } } isStartElementOpen = false; } catch (SAXException e) { throw XMLMarshalException.marshalException(e); } }
@Override public void attribute(String namespaceURI, String localName, String qName, String value) { validatingRecord.attribute(namespaceURI, localName, qName, value); marshalRecord.attribute(namespaceURI, localName, qName, value); }
@Override public void setMarshaller(Marshaller marshaller) { super.setMarshaller(marshaller); validatingRecord.setMarshaller(marshaller); marshalRecord.setMarshaller(marshaller); }
/** * INTERNAL: */ public void attribute(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, String value) { String namespaceURI = resolveNamespacePrefix(xPathFragment, namespaceResolver); attributes.addAttribute(namespaceURI, xPathFragment.getLocalName(), xPathFragment.getShortName(), XMLConstants.CDATA, value); }
@Override public void add(CoreField key, Object value) { validatingRecord.add(key, value); marshalRecord.add(key, value); }
/** * @since EclipseLink 2.5.0 */ @Override public List<Namespace> addExtraNamespacesToNamespaceResolver( Descriptor descriptor, CoreAbstractSession session, boolean allowOverride, boolean ignoreEqualResolvers) { validatingRecord.addExtraNamespacesToNamespaceResolver(descriptor, session, allowOverride, ignoreEqualResolvers); return marshalRecord.addExtraNamespacesToNamespaceResolver(descriptor, session, allowOverride, ignoreEqualResolvers); }
ContentHandlerRecord contentHandlerRecord = new ContentHandlerRecord(); contentHandlerRecord.setMarshaller(this); contentHandlerRecord.setContentHandler(contentHandler); contentHandlerRecord.setLexicalHandler(lexicalHandler); marshal(object, contentHandlerRecord, session, xmlDescriptor,isXMLRoot);
public ValidatingMarshalRecord(MarshalRecord marshalRecord, XMLMarshaller xmlMarshaller) { this.marshalRecord = marshalRecord; Schema schema = xmlMarshaller.getSchema(); ValidatorHandler validatorHandler = schema.newValidatorHandler(); validatorHandler.setErrorHandler(new ValidatingMarshalRecordErrorHandler(marshalRecord, xmlMarshaller.getErrorHandler())); if(xmlMarshaller.isFragment()) { try { validatorHandler.startDocument(); } catch (SAXException e) { } } validatingRecord = new ContentHandlerRecord(); validatingRecord.setMarshaller(xmlMarshaller); validatingRecord.setContentHandler(validatorHandler); validatingRecord.setEqualNamespaceResolvers(marshalRecord.hasEqualNamespaceResolvers()); }
ContentHandlerRecord marshalRecord = new ContentHandlerRecord(); marshalRecord.setContentHandler(((SAXResult)result).getHandler()); marshalRecord.setMarshaller(anXMLMarshaller); listener.setRootMarshalRecord(marshalRecord); anXMLMarshaller.marshal(xmlDocument, marshalRecord); marshalRecord.flush(); } else if(result instanceof DOMResult) { NodeRecord marshalRecord = new NodeRecord();
Attr attr = (Attr) node; String resolverPfx = null; if (getNamespaceResolver() != null) { resolverPfx = this.getNamespaceResolver().resolveNamespaceURI(attr.getNamespaceURI()); attribute(namespaceURI, localName, resolverPfx+Constants.COLON+attr.getLocalName(), attr.getNodeValue()); } else { attribute(namespaceURI, localName, attr.getName(), attr.getNodeValue()); attribute(javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI, localName , javax.xml.XMLConstants.XMLNS_ATTRIBUTE + Constants.COLON + attr.getPrefix(), attr.getNamespaceURI()); this.getNamespaceResolver().put(attr.getPrefix(), attr.getNamespaceURI()); openAndCloseStartElement(); isStartElementOpen = false; characters(node.getNodeValue()); } else { XMLFragmentReader xfragReader = new XMLFragmentReader(namespaceResolver);
/** * INTERNAL: */ public void cdata(String value) { //No specific support for CDATA in a ContentHandler. Just treat as regular //Character data as a SAX parser would. if (isStartElementOpen) { openAndCloseStartElement(); isStartElementOpen = false; } try { if(lexicalHandler != null) { lexicalHandler.startCDATA(); } characters(value); if(lexicalHandler != null) { lexicalHandler.endCDATA(); } } catch(SAXException ex) { throw XMLMarshalException.marshalException(ex); } }