@Override public void setContentHandler (ContentHandler handler) { this.contentHandler = handler; if(handler.getClass() == UnmarshalRecord.class){ ((UnmarshalRecord)handler).setUnmarshalNamespaceResolver(unmarshalNamespaceContext); }else if(handler.getClass() == SAXUnmarshallerHandler.class){ ((SAXUnmarshallerHandler)handler).setUnmarshalNamespaceResolver(unmarshalNamespaceContext); } }
public UnmarshalRecord getChildUnmarshalRecord(TreeObjectBuilder treeObjectBuilder) { if(childRecordPool.isEmpty()) { UnmarshalRecord childRecord = (UnmarshalRecord) treeObjectBuilder.createRecord(session); childRecord.setUnmarshaller(unmarshaller); childRecord.session = this.session; childRecord.xmlReader = this.xmlReader; childRecord.setFragmentBuilder(fragmentBuilder); childRecord.setUnmarshalNamespaceResolver(this.getUnmarshalNamespaceResolver()); childRecord.childRecordPool = this.childRecordPool; return childRecord; } else { return childRecordPool.remove(childRecordPool.size() - 1).initialize(treeObjectBuilder); } }
if (xmlDescriptor.hasInheritance()) { unmarshalRecord = new UnmarshalRecord((TreeObjectBuilder)xmlDescriptor.getObjectBuilder()); unmarshalRecord.setUnmarshalNamespaceResolver(unmarshalNamespaceResolver); unmarshalRecord.setAttributes(atts); if(parentRecord != null){ unmarshalRecord.setXMLReader(parentRecord.getXMLReader()); unmarshalRecord.startDocument(); unmarshalRecord.setUnmarshalNamespaceResolver(unmarshalNamespaceResolver); unmarshalRecord.startElement(namespaceURI, localName, qName, atts);
if (xmlDescriptor.hasInheritance()) { unmarshalRecord = new UnmarshalRecord((TreeObjectBuilder)xmlDescriptor.getObjectBuilder()); unmarshalRecord.setUnmarshalNamespaceResolver(unmarshalNamespaceResolver); unmarshalRecord.setAttributes(atts); if(parentRecord != null){ unmarshalRecord.setXMLReader(parentRecord.getXMLReader()); unmarshalRecord.startDocument(); unmarshalRecord.setUnmarshalNamespaceResolver(unmarshalNamespaceResolver); unmarshalRecord.startElement(namespaceURI, localName, qName, atts);
} else if (xmlDescriptor.hasInheritance()) { unmarshalRecord = new UnmarshalRecord(null); unmarshalRecord.setUnmarshalNamespaceResolver(unmarshalNamespaceResolver); unmarshalRecord.setAttributes(atts); Class classValue = xmlDescriptor.getInheritancePolicy().classFromRow(unmarshalRecord, session); unmarshalRecord.setUnmarshalNamespaceResolver(unmarshalNamespaceResolver); unmarshalRecord.startDocument(); xmlReader.setContentHandler(unmarshalRecord);