public final class DomBuilderFromSax
extends org.xml.sax.helpers.DefaultHandler
Document from an XML Schema during a SAX
walk.| Modifier and Type | Field and Description |
|---|---|
private java.lang.StringBuilder |
content |
private javax.xml.parsers.DocumentBuilder |
docBuilder |
private org.w3c.dom.Document |
document |
private java.util.Map<javax.xml.namespace.QName,XmlSchemaStateMachineNode> |
elementsByQName |
private java.util.ArrayList<org.w3c.dom.Element> |
elementStack |
private java.util.Set<java.lang.String> |
globalNamespaces |
private java.util.Map<java.lang.String,java.lang.String> |
namespaceToLocationMapping |
private java.util.List<java.lang.String> |
newPrefixes |
private XmlSchemaNamespaceContext |
nsContext |
private XmlSchemaCollection |
schemas |
private static java.lang.String |
XSI_NIL |
private static java.lang.String |
XSI_NS |
private static java.lang.String |
XSI_SCHEMALOC |
| Constructor and Description |
|---|
DomBuilderFromSax(XmlSchemaCollection xmlSchemaCollection)
Creates a new
DocumentBuilderFromSax. |
| Modifier and Type | Method and Description |
|---|---|
private void |
addContentToCurrentElement(boolean isEnd) |
private void |
addNamespaceLocationMappings(org.w3c.dom.Element rootElement) |
void |
characters(char[] ch,
int start,
int length)
Adds content to the current element.
|
void |
endDocument() |
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
Closes the current element in the generated XML document.
|
void |
endPrefixMapping(java.lang.String prefix) |
org.w3c.dom.Document |
getDocument()
Retrieves the document constructed from the SAX walk.
|
java.util.Map<java.lang.String,java.lang.String> |
getNamespaceToLocationMapping()
Retrieves the XML Schema namespace -> location mapping set by the last
call to
setNamespaceToLocationMapping(Map). |
java.util.Map<javax.xml.namespace.QName,XmlSchemaStateMachineNode> |
getStateMachinesByQName()
Retrieves the
QName -> XmlSchemaStateMachineNode mapping
defined by the call to setStateMachinesByQName(Map). |
void |
setNamespaceToLocationMapping(java.util.Map<java.lang.String,java.lang.String> nsToLocMapping)
Sets the XML Schema namespace -> location mapping to use when defining
the schemaLocation attribute in the generated XML document.
|
void |
setStateMachinesByQName(java.util.Map<javax.xml.namespace.QName,XmlSchemaStateMachineNode> statesByQName)
Sets the mapping of
QNames to XmlSchemaStateMachineNodes. |
void |
startDocument() |
void |
startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes atts)
Starts a new element in the generated XML document.
|
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri) |
private static final java.lang.String XSI_NS
private static final java.lang.String XSI_SCHEMALOC
private static final java.lang.String XSI_NIL
private org.w3c.dom.Document document
private java.lang.StringBuilder content
private java.util.Map<java.lang.String,java.lang.String> namespaceToLocationMapping
private java.util.List<java.lang.String> newPrefixes
private XmlSchemaNamespaceContext nsContext
private java.util.Map<javax.xml.namespace.QName,XmlSchemaStateMachineNode> elementsByQName
private final java.util.ArrayList<org.w3c.dom.Element> elementStack
private final javax.xml.parsers.DocumentBuilder docBuilder
private final XmlSchemaCollection schemas
private final java.util.Set<java.lang.String> globalNamespaces
public DomBuilderFromSax(XmlSchemaCollection xmlSchemaCollection) throws javax.xml.parsers.ParserConfigurationException
DocumentBuilderFromSax.javax.xml.parsers.ParserConfigurationException - If unable to create a
DocumentBuilder.public void startDocument()
throws org.xml.sax.SAXException
startDocument in interface org.xml.sax.ContentHandlerstartDocument in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.startDocument()public void startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
throws org.xml.sax.SAXException
startPrefixMapping in interface org.xml.sax.ContentHandlerstartPrefixMapping in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.startPrefixMapping(String,
String)public void endPrefixMapping(java.lang.String prefix)
throws org.xml.sax.SAXException
endPrefixMapping in interface org.xml.sax.ContentHandlerendPrefixMapping in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.endPrefixMapping(String)public void startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes atts)
throws org.xml.sax.SAXException
startElement in interface org.xml.sax.ContentHandlerstartElement in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.startElement(String, String, String, Attributes)public void characters(char[] ch,
int start,
int length)
throws org.xml.sax.SAXException
characters in interface org.xml.sax.ContentHandlercharacters in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.characters(char[], int, int)public void endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
throws org.xml.sax.SAXException
endElement in interface org.xml.sax.ContentHandlerendElement in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.endElement(String, String, String)public void endDocument()
throws org.xml.sax.SAXException
endDocument in interface org.xml.sax.ContentHandlerendDocument in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionDefaultHandler.endDocument()private void addContentToCurrentElement(boolean isEnd)
public org.w3c.dom.Document getDocument()
public java.util.Map<java.lang.String,java.lang.String> getNamespaceToLocationMapping()
setNamespaceToLocationMapping(Map).public void setNamespaceToLocationMapping(java.util.Map<java.lang.String,java.lang.String> nsToLocMapping)
nsToLocMapping - The namespace -> location mapping.public java.util.Map<javax.xml.namespace.QName,XmlSchemaStateMachineNode> getStateMachinesByQName()
QName -> XmlSchemaStateMachineNode mapping
defined by the call to setStateMachinesByQName(Map).public void setStateMachinesByQName(java.util.Map<javax.xml.namespace.QName,XmlSchemaStateMachineNode> statesByQName)
QNames to XmlSchemaStateMachineNodes.
This is used to disambiguate:
statesByQName - The state-machine-node-by-QName mapping.private void addNamespaceLocationMappings(org.w3c.dom.Element rootElement)