com.collabnet.core.xml
Interface SchemaVisitor

All Known Implementing Classes:
StrongTypedSchemaVisitor

public interface SchemaVisitor

SchemaVisitor is used to generate the XSD schema. Since XMLVisitor generates the XML, there is a strong relationship between a SchemaVisitor implementation and the corresponding XMLVisitor implementation.

While XMLVisitor is used to generate XML instance documents from XMLObjects, the SchemaVisitor is used to generate XML Schema documents from XMLModels associated with those XMLObjects.

Author:
sszego

Field Summary
static java.lang.String ANNOTATION
          Comment for ANNOTATION: The xsd:annotation tag
static java.lang.String COMPLEX_TYPE
          Comment for COMPLEX_TYPE: The xsd:complexType tag
static java.lang.String DESCRIPTION
          Comment for DESCRIPTION: The xsd:description tag
static java.lang.String ELEMENT
          Comment for ELEMENT: The xsd:element tag
static java.lang.String ELEMENT_FORM_DEFAULT_ATTR
          Comment for ELEMENT_FORM_DEFAULT_ATTR: The elementFormDefault attribute
static java.lang.String IMPORT
          Comment for IMPORT: The xsd:import tag
static java.lang.String SCHEMA
          Comment for SCHEMA: The xsd:schema tag
static java.lang.String SCHEMA_NAMESPACE
          The namespace of XSD schemas
static java.lang.String SCHEMA_NAMESPACE_PREFIX
          SCHEMA_NAMESPACE_PREFIX: the standard namespace prefix to use for elements in the XSD namespace.
static java.lang.String SEQUENCE
          Comment for SEQUENCE: The xsd:sequence
static java.lang.String SIMPLE_TYPE
          Comment for SIMPLE_TYPE: The xsd:simpleType tag
static java.lang.String TARGETNAMESPACE_ATTR
          Comment for TARGETNAMESPACE_ATTR: The targetNamespace attribute
 
Method Summary
 void endChoice()
          Ends an xs:choice segment
 void endContainerElement(java.lang.String namespace, java.lang.String tag)
          Closes a container element
 void endSequence()
          Ends an xs:sequence segment
 void endTopContainerElement(java.lang.String namespace, java.lang.String tag)
           
 void setSchemaReferences(java.util.List list)
          SchemaReference provides a mapping from a namespace to the URL location of the schema.
 void startChoice()
          Starts an xs:choice segment
 void startContainerElement(java.lang.String namespace, java.lang.String tag, java.lang.String minOccurs, java.lang.String maxOccurs)
          Starts a nested container element.
 void startSequence()
          Starts an xs:sequence
 void startTopContainerElement(java.lang.String namespace, java.lang.String tag)
          Starts a toplevel element that can contain additional child elements.
 void visitDateElement(java.lang.String namespace, java.lang.String tag, java.lang.String minOccurs, java.lang.String maxOccurs)
          Generates the schema for a date
 void visitElement(java.lang.String namespace, java.lang.String tag, XSDBaseType type, java.lang.String minOccurs, java.lang.String maxOccurs)
          Creates a toplevel element definition of type XSD Base type.
 void visitElementReference(java.lang.String namespace, java.lang.String tag, java.lang.String minOccurs, java.lang.String maxOccurs)
          Starts a container inside an element or type definition.
 void visitEmptyContent(java.lang.String namespace, java.lang.String tag, java.lang.String minOccurs, java.lang.String maxOccurs)
          Creates definition for empty content model
 void visitTopElement(java.lang.String namespace, java.lang.String tag, XSDBaseType type)
           
 void visitTopEmptyContent(java.lang.String namespace, java.lang.String tag)
           
 

Field Detail

SCHEMA_NAMESPACE

static final java.lang.String SCHEMA_NAMESPACE
The namespace of XSD schemas

See Also:
Constant Field Values

SCHEMA_NAMESPACE_PREFIX

static final java.lang.String SCHEMA_NAMESPACE_PREFIX
SCHEMA_NAMESPACE_PREFIX: the standard namespace prefix to use for elements in the XSD namespace.

See Also:
Constant Field Values

SCHEMA

static final java.lang.String SCHEMA
Comment for SCHEMA: The xsd:schema tag

See Also:
Constant Field Values

IMPORT

static final java.lang.String IMPORT
Comment for IMPORT: The xsd:import tag

See Also:
Constant Field Values

ELEMENT

static final java.lang.String ELEMENT
Comment for ELEMENT: The xsd:element tag

See Also:
Constant Field Values

SIMPLE_TYPE

static final java.lang.String SIMPLE_TYPE
Comment for SIMPLE_TYPE: The xsd:simpleType tag

See Also:
Constant Field Values

COMPLEX_TYPE

static final java.lang.String COMPLEX_TYPE
Comment for COMPLEX_TYPE: The xsd:complexType tag

See Also:
Constant Field Values

ANNOTATION

static final java.lang.String ANNOTATION
Comment for ANNOTATION: The xsd:annotation tag

See Also:
Constant Field Values

DESCRIPTION

static final java.lang.String DESCRIPTION
Comment for DESCRIPTION: The xsd:description tag

See Also:
Constant Field Values

SEQUENCE

static final java.lang.String SEQUENCE
Comment for SEQUENCE: The xsd:sequence

See Also:
Constant Field Values

TARGETNAMESPACE_ATTR

static final java.lang.String TARGETNAMESPACE_ATTR
Comment for TARGETNAMESPACE_ATTR: The targetNamespace attribute

See Also:
Constant Field Values

ELEMENT_FORM_DEFAULT_ATTR

static final java.lang.String ELEMENT_FORM_DEFAULT_ATTR
Comment for ELEMENT_FORM_DEFAULT_ATTR: The elementFormDefault attribute

See Also:
Constant Field Values
Method Detail

visitElement

void visitElement(java.lang.String namespace,
                  java.lang.String tag,
                  XSDBaseType type,
                  java.lang.String minOccurs,
                  java.lang.String maxOccurs)
                  throws SchemaGenerationException
Creates a toplevel element definition of type XSD Base type.

Parameters:
namespace - the namespace of this element
tag - the name of this element
type - the type of the XSD
minOccurs -
maxOccurs -
Throws:
SchemaGenerationException

visitDateElement

void visitDateElement(java.lang.String namespace,
                      java.lang.String tag,
                      java.lang.String minOccurs,
                      java.lang.String maxOccurs)
                      throws SchemaGenerationException
Generates the schema for a date

Parameters:
namespace - the namespace of the tag
tag - the name of the tag
minOccurs -
maxOccurs -
Throws:
SchemaGenerationException

visitTopElement

void visitTopElement(java.lang.String namespace,
                     java.lang.String tag,
                     XSDBaseType type)
                     throws SchemaGenerationException
Parameters:
namespace -
tag -
type -
Throws:
SchemaGenerationException

visitEmptyContent

void visitEmptyContent(java.lang.String namespace,
                       java.lang.String tag,
                       java.lang.String minOccurs,
                       java.lang.String maxOccurs)
                       throws SchemaGenerationException
Creates definition for empty content model

Parameters:
namespace -
tag -
minOccurs -
maxOccurs -
Throws:
SchemaGenerationException

visitTopEmptyContent

void visitTopEmptyContent(java.lang.String namespace,
                          java.lang.String tag)
                          throws SchemaGenerationException
Parameters:
namespace -
tag -
Throws:
SchemaGenerationException

startSequence

void startSequence()
                   throws SchemaGenerationException
Starts an xs:sequence

Throws:
SchemaGenerationException

endSequence

void endSequence()
Ends an xs:sequence segment


startChoice

void startChoice()
Starts an xs:choice segment


endChoice

void endChoice()
Ends an xs:choice segment


visitElementReference

void visitElementReference(java.lang.String namespace,
                           java.lang.String tag,
                           java.lang.String minOccurs,
                           java.lang.String maxOccurs)
                           throws SchemaGenerationException
Starts a container inside an element or type definition. Typically, it generates the following: <...some container node...> <xs:element ref="{nsprefix}:{tag}" minOccurs="{minOccurs}" maxOccurs="{maxOccurs}"/> </...some container node...> Note you must call startContainerElement(namespace,tag) to actually define the element.

Parameters:
namespace - the namespce
tag - the xml tag
minOccurs - a number or null
maxOccurs - a number, null or "unbounded"
Throws:
SchemaGenerationException

startTopContainerElement

void startTopContainerElement(java.lang.String namespace,
                              java.lang.String tag)
                              throws SchemaGenerationException
Starts a toplevel element that can contain additional child elements. Typically, it generates the following: <xs:element name="{tag}">

Note that you must call endContainerElement(namespace, tag) to complete the definition of this element.

Parameters:
namespace - the namespace where this element is located
tag - the name of the element.
Throws:
SchemaGenerationException

startContainerElement

void startContainerElement(java.lang.String namespace,
                           java.lang.String tag,
                           java.lang.String minOccurs,
                           java.lang.String maxOccurs)
                           throws SchemaGenerationException
Starts a nested container element.

Parameters:
namespace - the namespace of the element
tag - the tagname of the element
minOccurs - minOccurs
maxOccurs - maxOccurs
Throws:
SchemaGenerationException

endContainerElement

void endContainerElement(java.lang.String namespace,
                         java.lang.String tag)
                         throws SchemaGenerationException
Closes a container element

Parameters:
namespace - the namespace
tag - the XML tag
Throws:
SchemaGenerationException

endTopContainerElement

void endTopContainerElement(java.lang.String namespace,
                            java.lang.String tag)
Parameters:
namespace -
tag -

setSchemaReferences

void setSchemaReferences(java.util.List list)
SchemaReference provides a mapping from a namespace to the URL location of the schema.

Parameters:
list - the array of references to schemas that we expect to generate.