Top Description Inners Fields Constructors Methods
com.sun.org.apache.xerces.internal.impl.xs.traversers

public Class XSDHandler

extends Object
Class Inheritance
Annotations
@SuppressWarnings:deprecation
Imports
com.sun.org.apache.xerces.internal.impl.Constants, .XMLEntityManager, .XMLErrorReporter, com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory, com.sun.org.apache.xerces.internal.impl.dv.xs.XSSimpleTypeDecl, com.sun.org.apache.xerces.internal.impl.xs.SchemaGrammar, .SchemaNamespaceSupport, .SchemaSymbols, .XMLSchemaException, .XMLSchemaLoader, .XSAttributeDecl, .XSAttributeGroupDecl, .XSComplexTypeDecl, .XSDDescription, .XSDeclarationPool, .XSElementDecl, .XSGrammarBucket, .XSGroupDecl, .XSMessageFormatter, .XSModelGroupImpl, .XSNotationDecl, .XSParticleDecl, com.sun.org.apache.xerces.internal.impl.xs.identity.IdentityConstraint, com.sun.org.apache.xerces.internal.impl.xs.opti.ElementImpl, .SchemaDOMParser, .SchemaParsingConfig, com.sun.org.apache.xerces.internal.impl.xs.util.SimpleLocator, .XSInputSource, com.sun.org.apache.xerces.internal.parsers.SAXParser, .XML11Configuration, com.sun.org.apache.xerces.internal.util.DOMInputSource, .DOMUtil, .DefaultErrorHandler, .ErrorHandlerWrapper, .SAXInputSource, .StAXInputSource, .StAXLocationWrapper, .SymbolHash, .SymbolTable, .URI.MalformedURIException, .XMLChar, .XMLSymbols, com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager, com.sun.org.apache.xerces.internal.xni.QName, .XNIException, com.sun.org.apache.xerces.internal.xni.grammars.Grammar, .XMLGrammarDescription, .XMLGrammarPool, .XMLSchemaDescription, com.sun.org.apache.xerces.internal.xni.parser.XMLComponentManager, .XMLConfigurationException, .XMLEntityResolver, .XMLErrorHandler, .XMLInputSource, .XMLParseException, com.sun.org.apache.xerces.internal.xs.StringList, .XSAttributeDeclaration, .XSAttributeGroupDefinition, .XSAttributeUse, .XSConstants, .XSElementDeclaration, .XSModelGroup, .XSModelGroupDefinition, .XSNamedMap, .XSObject, .XSObjectList, .XSParticle, .XSSimpleTypeDefinition, .XSTerm, .XSTypeDefinition, com.sun.org.apache.xerces.internal.xs.datatypes.ObjectList, java.io.IOException, .StringReader, java.util.ArrayList, .Collections, .HashMap, .List, .Locale, .Map, .Stack, javax.xml.XMLConstants, javax.xml.catalog.CatalogFeatures, javax.xml.stream.XMLEventReader, .XMLStreamException, .XMLStreamReader, jdk.xml.internal.JdkConstants, .JdkXmlUtils, .SecuritySupport, .XMLSecurityManager, org.w3c.dom.Document, .Element, .Node, org.xml.sax.InputSource, .SAXException, .SAXNotRecognizedException, .SAXParseException, .XMLReader

The purpose of this class is to co-ordinate the construction of a grammar object corresponding to a schema. To do this, it must be prepared to parse several schema documents (for instance if the schema document originally referred to contains <include> or <redefined> information items). If any of the schemas imports a schema, other grammars may be constructed as a side-effect.
Authors
Neil Graham, IBM, Pavani Mukthipudi, Sun Microsystems

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class
XSDHandler.XSAnnotationGrammarPool

Grammar pool used for validating annotations.

private static class
XSDHandler.XSDKey

used to identify a reference to a schema document if the same document is referenced twice with the same key, then we only need to parse it once.

Field Summary

Modifier and TypeField and Description
protected static final String
ALLOW_JAVA_ENCODINGS

Feature identifier: allow java encodings

pack-priv static final int
pack-priv static final int
private static final String[]
private static final String[]
protected static final String
CONTINUE_AFTER_FATAL_ERROR

Feature identifier: continue after fatal error

protected static final boolean
protected static final String
DISALLOW_DOCTYPE

Feature: disallow doctype

private static final String[]
pack-priv static final int
protected static final String
ENTITY_MANAGER

Property identifier: entity manager.

public static final String
ENTITY_RESOLVER

Property identifier: entity resolver.

protected static final String
ERROR_HANDLER

Property identifier: error handler.

public static final String
ERROR_REPORTER

Property identifier: error reporter.

private String
private String
private int[]
private List<String>
pack-priv XML11Configuration
private XSAttributeChecker
pack-priv XSDAttributeGroupTraverser
pack-priv XSDAttributeTraverser
private String
pack-priv XSDComplexTypeTraverser
protected XSDeclarationPool
private String
private Map<XSDocumentInfo, List<XSDocumentInfo>>
private Map<Element, String>
private Map<Element, XSDocumentInfo>
pack-priv SchemaDVFactory
pack-priv XSDElementTraverser
private XMLEntityManager
private XMLErrorHandler
private XMLErrorReporter
pack-priv SymbolHash
pack-priv SymbolHash
pack-priv SymbolHash
pack-priv SymbolHash
pack-priv SymbolHash
pack-priv SymbolHash
pack-priv SymbolHash
private XSGrammarBucket
pack-priv XSDHandler.XSAnnotationGrammarPool
private XMLGrammarPool
pack-priv XSDGroupTraverser
pack-priv Map<Node, String>
private boolean
private Map<String, List<String>>
private XSElementDecl[]
private String[][]
private Element[]
private XSDocumentInfo[]
private int
pack-priv XSDKeyrefTraverser
private boolean
private Locale
private Element[]
private XSDocumentInfo[]
private String[][]
private int
private Map<String, XMLSchemaLoader.LocationArray>
pack-priv boolean
pack-priv XSDNotationTraverser
private boolean
private XSObject[]
private XSParticleDecl[]
private String
private Map<Element, SchemaNamespaceSupport>
private Map<Element, XSDocumentInfo>
private final Map<String, String>
private final Map<String, String>
private List<String>
private String
private XSDocumentInfo
private XSDDescription
pack-priv SchemaDOMParser
protected XMLSecurityManager
private XMLSecurityPropertyManager
pack-priv XSDSimpleTypeTraverser
pack-priv StAXSchemaParser
private SymbolTable
pack-priv boolean
private Map<XSDHandler.XSDKey, Element>
pack-priv XSDUniqueOrKeyTraverser
private Map<String, Element>
private Map<String, XSDocumentInfo>
private Map<String, Element>
private Map<String, XSDocumentInfo>
private Map<String, Element>
private Map<String, XSDocumentInfo>
private Map<String, Element>
private Map<String, XSDocumentInfo>
private Map<String, Element>
private Map<String, XSDocumentInfo>
private Map<String, Element>
private Map<String, XSDocumentInfo>
private Map<String, XSDocumentInfo>[]
private Map<String, Element>
private Map<String, XSDocumentInfo>
private boolean
fUseCatalog

indicate whether Catalog should be used for resolving external resources

private boolean
pack-priv XSDWildcardTraverser
pack-priv SchemaContentHandler
protected static final String
GENERATE_SYNTHETIC_ANNOTATIONS

Feature: generate synthetic annotations

pack-priv static final int
protected static final String
HONOUR_ALL_SCHEMALOCATIONS

Feature identifier: honour all schemaLocations

pack-priv static final int
private static final int
private static final int
private static final int
private static final int
protected static final String
JAXP_SCHEMA_SOURCE

Property identifier: JAXP schema source.

protected static final String
LOCALE

Property identifier: locale.

protected static final String
NAMESPACE_GROWTH

Feature identifier: namespace growth

private static final String
NAMESPACE_PREFIXES

Feature identifier: namespace prefixes.

pack-priv static final int
private static final String[][]
public static final String
private boolean
protected static final String
SECURITY_MANAGER

Property identifier: security manager.

protected static final String
STANDARD_URI_CONFORMANT_FEATURE

Feature identifier: allow java encodings

protected static final String
STRING_INTERNING

Feature identifier: string interning.

public static final String
SYMBOL_TABLE

Property identifier: symbol table.

protected static final String
TOLERATE_DUPLICATES

Feature identifier: tolerate duplicates

pack-priv static final int
protected static final String
VALIDATE_ANNOTATIONS

Feature identifier: validate annotations.

protected static final String
VALIDATION

Feature identifier: validation.

private SimpleLocator
private static final String
XML_SECURITY_PROPERTY_MANAGER

Property identifier: Security property manager.

public static final String
XMLGRAMMAR_POOL

Property identifier: grammar pool.

protected static final String
XMLSCHEMA_VALIDATION

feature identifier: XML Schema validation

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
pack-priv void
private void
pack-priv void
private void
private void
private void
addGlobalComponents(List<XSObject> components, Map<String, List<String>> importDependencies)

pack-priv void
private void
pack-priv void
private void
pack-priv void
private void
pack-priv void
private void
private void
private void
pack-priv void
private void
addImportList(SchemaGrammar sg, List<SchemaGrammar> importedGrammars, List<String> namespaceList)

private void
addNamespaceDependency(String namespace1, String namespace2, List<String> list)

private void
private void
private void
private void
addRelatedAttribute(XSAttributeDeclaration decl, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
addRelatedElement(XSElementDeclaration decl, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
addRelatedType(XSTypeDefinition type, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

protected void
private boolean
private boolean
private int
changeRedefineGroup(String originalQName, String elementSought, String newName, Element curr, XSDocumentInfo schemaDoc)

pack-priv void
checkForDuplicateNames(String qName, int declType, Map<String, Element> registry, Map<String, XSDocumentInfo> registry_sub, Element currComp, XSDocumentInfo currSchema)

This method makes sure that if this component is being redefined that it lives in the right schema.

pack-priv void
checkForDuplicateNames(String qName, int declType, Element currComp)

protected XSDocumentInfo
constructTrees(Element schemaRoot, String locationHint, XSDDescription desc, boolean nsCollision)

private boolean
private void
private SchemaGrammar
private void
private String
public SimpleLocator
element2Locator(Element e)

Extract location information from an Element node, and create a new SimpleLocator object from such information.

public boolean
element2Locator(Element e, SimpleLocator l)

Extract location information from an Element node, store such information in the passed-in SimpleLocator object, then return true.

private String
private boolean
private List<XSObject>
expandComponents(XSObject[] components, Map<String, List<String>> dependencies)

private List<SchemaGrammar>
private void
expandImportList(String namespace, List<String> namespaceList)

private void
private void
private void
expandRelatedAttributeUseComponents(XSAttributeUse component, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
expandRelatedAttributeUsesComponents(XSObjectList attrUses, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
expandRelatedComplexTypeComponents(XSComplexTypeDecl type, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
expandRelatedComponents(XSObject component, List<XSObject> componentList, Map<String, List<String>> dependencies)

private void
expandRelatedElementComponents(XSElementDeclaration decl, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
expandRelatedModelGroupComponents(XSModelGroup modelGroup, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
expandRelatedModelGroupDefinitionComponents(XSModelGroupDefinition modelGroupDef, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
expandRelatedParticleComponents(XSParticle component, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

private void
private void
expandRelatedTypeComponents(XSTypeDefinition type, List<XSObject> componentList, String namespace, Map<String, List<String>> dependencies)

pack-priv void
fillInLocalElemInfo(Element elmDecl, XSDocumentInfo schemaDoc, int allContextFlags, XSObject parent, XSParticleDecl particle)

private List<String>
protected SchemaGrammar
findGrammar(XSDDescription desc, boolean ignoreConflict)

First try to find a grammar in the bucket, if failed, consult the grammar pool.

private String
findQName(String name, XSDocumentInfo schemaDoc)

private XSDocumentInfo
private XSDocumentInfo
public SchemaDVFactory
private Element
getElementFromMap(Map<String, Element> registry, String declKey)

private List<String>
getFromMap(Map<String, List<String>> registry, String key)

private XSAttributeDecl
private XSAttributeGroupDecl
protected Object
getGlobalDecl(XSDocumentInfo currSchema, int declType, QName declToTraverse, Element elmNode)

protected Object
getGlobalDecl(String declKey, int declType)

protected Object
getGlobalDeclFromGrammar(SchemaGrammar sGrammar, int declType, String localpart)

protected Object
getGlobalDeclFromGrammar(SchemaGrammar sGrammar, int declType, String localpart, String schemaLoc)

private XSElementDecl
private XSGroupDecl
private XSNotationDecl
private XSTypeDefinition
pack-priv SchemaGrammar
getGrammar(String tns)

Pull the grammar out of the bucket simply using its TNS as a key

pack-priv Object
private IdentityConstraint
protected Map<String, Element>
protected Map<String, XSDocumentInfo>
private Element

Returns:

A schema Element.
getSchemaDocument
(String schemaNamespace, XMLInputSource schemaSource, boolean mustResolve, short referType, Element referElement)

getSchemaDocument method uses XMLInputSource to parse a schema document.

private Element

Returns:

A schema Element.
getSchemaDocument
(String schemaNamespace, SAXInputSource schemaSource, boolean mustResolve, short referType, Element referElement)

getSchemaDocument method uses SAXInputSource to parse a schema document.

private Element

Returns:

A schema Element.
getSchemaDocument
(String schemaNamespace, DOMInputSource schemaSource, boolean mustResolve, short referType, Element referElement)

getSchemaDocument method uses DOMInputSource to parse a schema document.

private Element

Returns:

A schema Element.
getSchemaDocument
(String schemaNamespace, StAXInputSource schemaSource, boolean mustResolve, short referType, Element referElement)

getSchemaDocument method uses StAXInputSource to parse a schema document.

private Element

Returns:

A schema Element.
getSchemaDocument
(XSInputSource schemaSource, XSDDescription desc)

getSchemaDocument method uses XMLInputSource to parse a schema document.

private Element
getSchemaDocument0(XSDHandler.XSDKey key, String schemaId, Element schemaElement)

Code shared between the various getSchemaDocument() methods which stores mapping information for the document.

private Element
getSchemaDocument1(boolean mustResolve, boolean hasInput, XMLInputSource schemaSource, Element referElement, IOException ioe)

Error handling code shared between the various getSchemaDocument() methods.

private SchemaGrammar
private boolean
isExistingGrammar(XSDDescription desc, boolean ignoreConflict)

private final boolean
private boolean
private String
public SchemaGrammar

Returns:

the SchemaGrammar
parseSchema
(XMLInputSource is, XSDDescription desc, Map<String, XMLSchemaLoader.LocationArray> locationPairs)

This method initiates the parse of a schema.

pack-priv void
pack-priv void
private boolean
private void
renameRedefiningComponents(XSDocumentInfo currSchema, Element child, String componentType, String oldName, String newName)

pack-priv void
reportSchemaErr(String key, Object[] args, Element ele, short type, Exception exception)

pack-priv void
pack-priv void
reportSchemaError(String key, Object[] args, Element ele, Exception exception)

pack-priv void
pack-priv void
pack-priv void
reportSchemaWarning(String key, Object[] args, Element ele, Exception exception)

private void
reportSharingError(String namespace, String name)

public void
reset(XMLComponentManager componentManager)

protected void
private Element

Returns:

A schema Element or null.
resolveSchema
(XSDDescription desc, boolean mustResolve, Element referElement, boolean usePairs)

resolveSchema method is responsible for resolving location of the schema (using XMLEntityResolver), and if it was successfully resolved getting the schema Document.

private Element
resolveSchema(XMLInputSource schemaSource, XSDDescription desc, boolean mustResolve, Element referElement)

private XMLInputSource
resolveSchemaSource(XSDDescription desc, boolean mustResolve, Element referElement, boolean usePairs)

public String
public void
public void
public void
private void
protected void
storeKeyRef(Element keyrefToStore, XSDocumentInfo schemaDoc, XSElementDecl currElemDecl)

protected Object
traverseGlobalDecl(int declType, Element decl, XSDocumentInfo schemaDoc, SchemaGrammar grammar)

pack-priv void
traverseLocalElements()

Traverse all the deferred local elements.

protected void
traverseSchemas(List<Object> annotationInfo)

private void
private void
private void
updateImportList(SchemaGrammar sg, List<SchemaGrammar> importedGrammars, List<String> namespaceList)

private void
updateImportListFor(SchemaGrammar grammar)

Namespace growth Go through the import list of a given grammar and for each imported grammar, check to see if the grammar bucket has a newer version.

private void
updateImportListWith(SchemaGrammar newGrammar)

Namespace growth Go throuth the grammar bucket, and for each grammar in the bucket check the import list.

private void
validateAnnotations(List<Object> annotationInfo)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait