Top Description Fields Constructors Methods
org.dom4j.datatype

public Class SchemaParser

extends Object
Class Inheritance
Imports
com.sun.msv.datatype.xsd.DatatypeFactory, .TypeIncubator, .XSDatatype, java.util.HashMap, .Iterator, .Map, org.dom4j.Attribute, .Document, .DocumentFactory, .Element, .Namespace, .QName, org.dom4j.io.SAXReader, org.dom4j.util.AttributeHelper, org.relaxng.datatype.DatatypeException, .ValidationContext, org.xml.sax.EntityResolver, .InputSource

SchemaParser reads an XML Schema Document.

Authors
James Strachan , Yuxin Ruan
Version
$Revision: 1.19 $

Field Summary

Modifier and TypeField and Description
private Map<String, XSDatatype>
dataTypeCache

Cache of XSDatatype instances loaded or created during this build

private DatatypeDocumentFactory
documentFactory

Document factory used to register Element specific factories

private NamedTypeResolver
namedTypeResolver

NamedTypeResolver

private Namespace
targetNamespace

target namespace

private static final QName
private static final QName
private static final QName
private static final QName
private static final QName
private static final QName
private static final Namespace
private static final QName
private static final QName
private static final QName

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
public void
build(Document
is the document of the XML Schema
schemaDocument
)

Parses the given schema document

public void
build(Document schemaDocument, Namespace namespace)

private XSDatatype

Returns:

DOCUMENT ME!
dataTypeForXsdAttribute
(Element
DOCUMENT ME!
xsdAttribute
)

processes an XML Schema <attribute> tag

private XSDatatype

Returns:

DOCUMENT ME!
deriveSimpleType
(XSDatatype
DOCUMENT ME!
baseType
,
Element
DOCUMENT ME!
xsdRestriction
)

Derives a new type from a base type and a set of restrictions

private DatatypeElementFactory

Returns:

the DatatypeElementFactory for the given element QName, creating one if it does not already exist
getDatatypeElementFactory
(QName
The name of the element
name
)

DOCUMENT ME!

private QName
private XSDatatype
private synchronized void
internalBuild(Document schemaDocument)

private XSDatatype

Returns:

DOCUMENT ME!
loadXSDatatypeFromSimpleType
(Element
DOCUMENT ME!
xsdSimpleType
)

Loads a XSDatatype object from a <simpleType> attribute schema element

private void
private void
onDatatypeAttribute(Element
DOCUMENT ME!
xsdElement
,
DatatypeElementFactory
DOCUMENT ME!
elementFactory
,
Element
DOCUMENT ME!
xsdAttribute
)

processes an XML Schema <attribute> tag

private void
onDatatypeElement(Element
DOCUMENT ME!
xsdElement
,
DocumentFactory
DOCUMENT ME!
parentFactory
)

processes an XML Schema <element> tag

private void
onNamedSchemaComplexType(Element
DOCUMENT ME!
schemaComplexType
)

processes an named XML Schema <complexTypegt; tag

private void
onNamedSchemaSimpleType(Element
DOCUMENT ME!
schemaSimpleType
)

processes an named XML Schema <simpleTypegt; tag

private void
onSchemaComplexType(Element
DOCUMENT ME!
schemaComplexType
,
DatatypeElementFactory
DOCUMENT ME!
elementFactory
)

processes an XML Schema <complexTypegt; tag

private void
onSchemaError(String
DOCUMENT ME!
message
)

Called when there is a problem with the schema and the builder cannot handle the XML Schema Data Types correctly

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

dataTypeCacheback to summary
private Map<String, XSDatatype> dataTypeCache

Cache of XSDatatype instances loaded or created during this build

documentFactoryback to summary
private DatatypeDocumentFactory documentFactory

Document factory used to register Element specific factories

namedTypeResolverback to summary
private NamedTypeResolver namedTypeResolver

NamedTypeResolver

targetNamespaceback to summary
private Namespace targetNamespace

target namespace

XSD_ALLback to summary
private static final QName XSD_ALL
XSD_ATTRIBUTEback to summary
private static final QName XSD_ATTRIBUTE
XSD_CHOICEback to summary
private static final QName XSD_CHOICE
XSD_COMPLEXTYPEback to summary
private static final QName XSD_COMPLEXTYPE
XSD_ELEMENTback to summary
private static final QName XSD_ELEMENT
XSD_INCLUDEback to summary
private static final QName XSD_INCLUDE
XSD_NAMESPACEback to summary
private static final Namespace XSD_NAMESPACE
XSD_RESTRICTIONback to summary
private static final QName XSD_RESTRICTION
XSD_SEQUENCEback to summary
private static final QName XSD_SEQUENCE
XSD_SIMPLETYPEback to summary
private static final QName XSD_SIMPLETYPE

Constructor Detail

SchemaParserback to summary
public SchemaParser()
SchemaParserback to summary
public SchemaParser(DatatypeDocumentFactory documentFactory)

Method Detail

buildback to summary
public void build(Document schemaDocument)

Parses the given schema document

Parameters
schemaDocument:Document

is the document of the XML Schema

buildback to summary
public void build(Document schemaDocument, Namespace namespace)
dataTypeForXsdAttributeback to summary
private XSDatatype dataTypeForXsdAttribute(Element xsdAttribute)

processes an XML Schema <attribute> tag

Parameters
xsdAttribute:Element

DOCUMENT ME!

Returns:XSDatatype

DOCUMENT ME!

Exceptions
InvalidSchemaException:
DOCUMENT ME!
deriveSimpleTypeback to summary
private XSDatatype deriveSimpleType(XSDatatype baseType, Element xsdRestriction)

Derives a new type from a base type and a set of restrictions

Parameters
baseType:XSDatatype

DOCUMENT ME!

xsdRestriction:Element

DOCUMENT ME!

Returns:XSDatatype

DOCUMENT ME!

getDatatypeElementFactoryback to summary
private DatatypeElementFactory getDatatypeElementFactory(QName name)

DOCUMENT ME!

Parameters
name:QName

The name of the element

Returns:DatatypeElementFactory

the DatatypeElementFactory for the given element QName, creating one if it does not already exist

getQNameback to summary
private QName getQName(String name)
getTypeByNameback to summary
private XSDatatype getTypeByName(String type)
internalBuildback to summary
private synchronized void internalBuild(Document schemaDocument)
loadXSDatatypeFromSimpleTypeback to summary
private XSDatatype loadXSDatatypeFromSimpleType(Element xsdSimpleType)

Loads a XSDatatype object from a <simpleType> attribute schema element

Parameters
xsdSimpleType:Element

DOCUMENT ME!

Returns:XSDatatype

DOCUMENT ME!

onChildElementsback to summary
private void onChildElements(Element element, DatatypeElementFactory fact)
onDatatypeAttributeback to summary
private void onDatatypeAttribute(Element xsdElement, DatatypeElementFactory elementFactory, Element xsdAttribute)

processes an XML Schema <attribute> tag

Parameters
xsdElement:Element

DOCUMENT ME!

elementFactory:DatatypeElementFactory

DOCUMENT ME!

xsdAttribute:Element

DOCUMENT ME!

onDatatypeElementback to summary
private void onDatatypeElement(Element xsdElement, DocumentFactory parentFactory)

processes an XML Schema <element> tag

Parameters
xsdElement:Element

DOCUMENT ME!

parentFactory:DocumentFactory

DOCUMENT ME!

onNamedSchemaComplexTypeback to summary
private void onNamedSchemaComplexType(Element schemaComplexType)

processes an named XML Schema <complexTypegt; tag

Parameters
schemaComplexType:Element

DOCUMENT ME!

onNamedSchemaSimpleTypeback to summary
private void onNamedSchemaSimpleType(Element schemaSimpleType)

processes an named XML Schema <simpleTypegt; tag

Parameters
schemaSimpleType:Element

DOCUMENT ME!

onSchemaComplexTypeback to summary
private void onSchemaComplexType(Element schemaComplexType, DatatypeElementFactory elementFactory)

processes an XML Schema <complexTypegt; tag

Parameters
schemaComplexType:Element

DOCUMENT ME!

elementFactory:DatatypeElementFactory

DOCUMENT ME!

onSchemaErrorback to summary
private void onSchemaError(String message)

Called when there is a problem with the schema and the builder cannot handle the XML Schema Data Types correctly

Parameters
message:String

DOCUMENT ME!

Exceptions
InvalidSchemaException:
DOCUMENT ME!