public class XMLSchemaReader extends GrammarReader implements XSDatatypeResolver
Modifier and Type | Class and Description |
---|---|
static interface |
XMLSchemaReader.RefResolver |
static class |
XMLSchemaReader.StateFactory
creates various State object, which in turn parses grammar.
|
GrammarReader.BackPatch, GrammarReader.BackwardReferenceMap, GrammarReader.ChainPrefixResolver, GrammarReader.PrefixResolver
backwardReference, basePrefixResolver, controller, ERR_BAD_ATTRIBUTE_VALUE, ERR_BAD_TYPE, ERR_CHARACTERS, ERR_CONFLICTING_ATTRIBUTES, ERR_DATATYPE_ALREADY_DEFINED, ERR_DISALLOWED_ATTRIBUTE, ERR_FRAGMENT_IDENTIFIER, ERR_ILLEGAL_FINAL_VALUE, ERR_MALPLACED_ELEMENT, ERR_MISSING_ATTRIBUTE, ERR_MISSING_ATTRIBUTE_2, ERR_MISSING_CHILD_EXPRESSION, ERR_MISSING_CHILD_TYPE, ERR_MISSING_TOPLEVEL, ERR_MORE_THAN_ONE_CHILD_EXPRESSION, ERR_MORE_THAN_ONE_CHILD_TYPE, ERR_RECURSIVE_DATATYPE, ERR_RECURSIVE_INCLUDE, ERR_RUNAWAY_EXPRESSION, ERR_UNDEFINED_DATATYPE, parserFactory, pool, prefixResolver, WRN_DEPRECATED_TYPENAME, WRN_MAYBE_WRONG_NAMESPACE
Constructor and Description |
---|
XMLSchemaReader(GrammarReaderController controller)
easy-to-use constructor.
|
XMLSchemaReader(GrammarReaderController controller,
SAXParserFactory parserFactory) |
XMLSchemaReader(GrammarReaderController controller,
SAXParserFactory parserFactory,
ExpressionPool pool) |
XMLSchemaReader(GrammarReaderController controller,
SAXParserFactory parserFactory,
XMLSchemaReader.StateFactory stateFactory,
ExpressionPool pool) |
Modifier and Type | Method and Description |
---|---|
State |
createAttributeState(State parent,
StartTagInfo tag)
creates a state object that parses "attribute","attributeGroup ref", and "anyAttribute".
|
State |
createExpressionChildState(State parent,
StartTagInfo tag)
this method must be implemented by the derived class to create
language-default expresion state.
|
State |
createFacetState(State parent,
StartTagInfo tag) |
State |
createModelGroupState(State parent,
StartTagInfo tag)
creates a state object that parses "all"/"group ref"/"choice" and "sequence".
|
Map<String,String> |
getAdditionalNamespaceMap() |
XMLSchemaSchema |
getOrCreateSchema(String namespaceURI)
gets a reference to XMLSchemaGrammar object whose target namespace
is the specified one.
|
XMLSchemaGrammar |
getResult() |
Grammar |
getResultAsGrammar()
gets the parsed AGM.
|
static org.iso_relax.verifier.Schema |
getXmlSchemaForXmlSchema() |
protected Expression |
interceptExpression(State state,
Expression exp)
intercepts an expression made by ExpressionState
before it is passed to the parent state.
|
protected boolean |
isGrammarElement(StartTagInfo tag)
checks if given element is that of the grammar elements.
|
boolean |
isSchemaDefined(XMLSchemaSchema schema) |
boolean |
isSchemaNamespace(String ns) |
protected String |
localizeMessage(String propertyName,
Object[] args)
formats localized message with arguments
|
void |
markSchemaAsDefined(XMLSchemaSchema schema) |
static XMLSchemaGrammar |
parse(InputSource grammar,
SAXParserFactory factory,
GrammarReaderController controller)
loads XML Schema
|
static XMLSchemaGrammar |
parse(Source schema,
GrammarReaderController controller)
Convenience method to create a reader and read a single scheme.
|
static XMLSchemaGrammar |
parse(String grammarURL,
SAXParserFactory factory,
GrammarReaderController controller)
loads XML Schema
|
Expression |
processOccurs(Expression item,
int minOccurs,
int maxOccurs)
Adds maxOccurs/minOccurs semantics to a given expression.
|
Expression |
processOccurs(StartTagInfo startTag,
Expression item)
Adds maxOccurs/minOccurs semantics to a given expression.
|
XSDatatype |
resolveBuiltinDataType(String typeLocalName)
resolves built-in datatypes (URI: http://www.w3.org/2001/XMLSchema)
|
SimpleTypeExp |
resolveBuiltinSimpleType(String typeLocalName)
Gets a built-in datatype as SimpleTypeExp.
|
protected String |
resolveNamespaceOfAttributeDecl(String formValue) |
protected String |
resolveNamespaceOfElementDecl(String formValue) |
Expression |
resolveQNameRef(StartTagInfo tag,
String attName,
XMLSchemaReader.RefResolver resolver) |
XSDatatypeExp |
resolveXSDatatype(String typeQName)
Resolves a simple type name into the corresponding XSDatatypeExp object.
|
void |
setAdditionalNamespaceMap(Map<String,String> additionalNamespaceMap) |
String[] |
splitQName(String qName)
Resolves a QName into a pair of (namespace URI,local name).
|
protected void |
switchSource(State sourceState,
State newRootState) |
protected void |
wrapUp()
performs final wrap-up of parsing.
|
_parse, addBackPatchJob, addBackPatchJob, combineURI, combineURL, createParserFactory, detectUndefinedOnes, endPrefixMapping, getBackwardCompatibleType, getBaseUri, getCurrentState, getDeclaredLocationOf, getLocator, inputSourceFromLSInput, isNotation, isUnparsedEntity, iterateInscopeNamespaces, onID, parse, parse, parse, popState, pushState, reportError, reportError, reportError, reportError, reportError, reportError, reportError, reportError, reportWarning, reportWarning, reportWarning, reportWarning, resolveLocation, resolveNamespacePrefix, runBackPatchJob, setDeclaredLocationOf, setDocumentLocator, setLocator, startPrefixMapping, switchSource, switchSource, switchSource
characters, endDocument, endElement, error, fatalError, getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, getFeature, getParent, getProperty, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setContentHandler, setDTDHandler, setEntityResolver, setErrorHandler, setFeature, setParent, setProperty, skippedEntity, startDocument, startElement, unparsedEntityDecl, warning
protected static org.iso_relax.verifier.Schema xmlSchema4XmlSchema
public final ReferenceExp xsiSchemaLocationExp
public static final String XMLSchemaSchemaLocationAttributes
public final ComplexTypeExp complexUrType
protected String attributeFormDefault
protected String elementFormDefault
protected String finalDefault
protected String blockDefault
protected final XMLSchemaGrammar grammar
protected XMLSchemaSchema currentSchema
protected final XMLSchemaSchema xsdSchema
public final Map<String,Set<String>> parsedFiles
public final XMLSchemaReader.StateFactory sfactory
public static final String XMLSchemaNamespace
public static final String XMLSchemaNamespace_old
protected String chameleonTargetNamespace
When parsing a chameleon schema (inclusion of a schema without the targetNamespace attribute), this field is set to the target namespace of the callee, so that any reference occured in the chameleon schema is treated correctly.
This field must be set to null in other cases. In that case, QName resolution is handled just normally.
This field is maintained by SchemaIncludedState
.
public boolean doDuplicateDefinitionCheck
public static final String ERR_MAXOCCURS_IS_NECESSARY
public static final String ERR_UNIMPLEMENTED_FEATURE
public static final String ERR_UNDECLARED_PREFIX
public static final String ERR_INCONSISTENT_TARGETNAMESPACE
public static final String ERR_IMPORTING_SAME_NAMESPACE
public static final String ERR_DUPLICATE_SCHEMA_DEFINITION
public static final String ERR_UNDEFINED_ELEMENTTYPE
public static final String ERR_UNDEFINED_ATTRIBUTE_DECL
public static final String ERR_UNDEFINED_ATTRIBUTE_GROUP
public static final String ERR_UNDEFINED_COMPLEX_TYPE
public static final String ERR_UNDEFINED_SIMPLE_TYPE
public static final String ERR_UNDEFINED_COMPLEX_OR_SIMPLE_TYPE
public static final String ERR_UNDEFINED_ELEMENT_DECL
public static final String ERR_UNDEFINED_GROUP
public static final String ERR_UNDEFINED_SCHEMA
public static final String WRN_UNSUPPORTED_ANYELEMENT
public static final String WRN_OBSOLETED_NAMESPACE
public static final String ERR_UNDEFINED_OR_FORWARD_REFERENCED_TYPE
public static final String ERR_REDEFINE_UNDEFINED
public static final String ERR_DUPLICATE_ATTRIBUTE_DEFINITION
public static final String ERR_DUPLICATE_COMPLEXTYPE_DEFINITION
public static final String ERR_DUPLICATE_ATTRIBUTE_GROUP_DEFINITION
public static final String ERR_DUPLICATE_GROUP_DEFINITION
public static final String ERR_DUPLICATE_ELEMENT_DEFINITION
public static final String ERR_DUPLICATE_IDENTITY_CONSTRAINT_DEFINITION
public static final String ERR_BAD_XPATH
public static final String ERR_UNDEFINED_KEY
public static final String ERR_INVALID_BASETYPE_FOR_SIMPLECONTENT
public static final String ERR_KEY_FIELD_NUMBER_MISMATCH
public static final String ERR_KEYREF_REFERRING_NON_KEY
public static final String ERR_UNRELATED_TYPES_IN_SUBSTITUTIONGROUP
public static final String ERR_RECURSIVE_SUBSTITUTION_GROUP
public static final String WRN_IMPLICIT_URTYPE_FOR_ELEMENT
public XMLSchemaReader(GrammarReaderController controller)
public XMLSchemaReader(GrammarReaderController controller, SAXParserFactory parserFactory)
public XMLSchemaReader(GrammarReaderController controller, SAXParserFactory parserFactory, ExpressionPool pool)
public XMLSchemaReader(GrammarReaderController controller, SAXParserFactory parserFactory, XMLSchemaReader.StateFactory stateFactory, ExpressionPool pool)
public static XMLSchemaGrammar parse(String grammarURL, SAXParserFactory factory, GrammarReaderController controller)
public static XMLSchemaGrammar parse(InputSource grammar, SAXParserFactory factory, GrammarReaderController controller)
public static XMLSchemaGrammar parse(Source schema, GrammarReaderController controller) throws TransformerConfigurationException, TransformerException
schema
- controller
- TransformerConfigurationException
TransformerException
public static org.iso_relax.verifier.Schema getXmlSchemaForXmlSchema()
public final XMLSchemaGrammar getResult()
public Grammar getResultAsGrammar()
GrammarReader
getResultAsGrammar
in class GrammarReader
public XMLSchemaSchema getOrCreateSchema(String namespaceURI)
public State createExpressionChildState(State parent, StartTagInfo tag)
GrammarReader
createExpressionChildState
in class GrammarReader
public State createModelGroupState(State parent, StartTagInfo tag)
public State createAttributeState(State parent, StartTagInfo tag)
public State createFacetState(State parent, StartTagInfo tag)
protected boolean isGrammarElement(StartTagInfo tag)
GrammarReader
isGrammarElement
in class GrammarReader
public final void markSchemaAsDefined(XMLSchemaSchema schema)
public final boolean isSchemaDefined(XMLSchemaSchema schema)
public XSDatatype resolveBuiltinDataType(String typeLocalName)
public SimpleTypeExp resolveBuiltinSimpleType(String typeLocalName)
public boolean isSchemaNamespace(String ns)
public XSDatatypeExp resolveXSDatatype(String typeQName)
resolveXSDatatype
in interface XSDatatypeResolver
typeQName
- The type of this value varies in the schema language.
In XML Schema, for example, in which QNames are used
to designate datatypes, this parameter will be QName.
In RELAX Core, in which the same syntax is used but
NCName is used to designate datatypes. So this parameter
will be NCName.public Expression resolveQNameRef(StartTagInfo tag, String attName, XMLSchemaReader.RefResolver resolver)
public String[] splitQName(String qName)
When we are parsing a "chameleon schema", any reference to the default empty namespace("") has to be treated as a reference to the intended target namespace.
splitQName
in class GrammarReader
protected Expression interceptExpression(State state, Expression exp)
GrammarReader
interceptExpression
in class GrammarReader
public Expression processOccurs(StartTagInfo startTag, Expression item)
public Expression processOccurs(Expression item, int minOccurs, int maxOccurs)
maxOccurs
- -1 to represent "unbounded".protected void switchSource(State sourceState, State newRootState) throws AbortException
AbortException
protected void wrapUp()
protected String localizeMessage(String propertyName, Object[] args)
GrammarReader
localizeMessage
in class GrammarReader
Copyright © 2016 Oracle Corporation. All rights reserved.