com.sun.msv.reader.datatype
Interface DataTypeVocabulary

All Known Implementing Classes:
XSDVocabulary

public interface DataTypeVocabulary

this class is used to parse foreign datatype vocabulary. Each datatype vocabulary must be associated with one namespace URI. When the element with that namespace URI is first found, this object is instanciated. After that, whenever the element with the namespace URI is found, createTopLevelReaderState method will be used to parse the element (and its descendants.) And whenever a reference to this vocabulary by name (e.g., "mydt:mytypename") is found, getType method is called to resolve this name into DataType object. One instance of this class is used throughout the parsing of one grammar. Therefore, implementations are encouraged to take advantages of this property and keep context information (e.g., user-defined named datatypes).

Author:
Kohsuke KAWAGUCHI

Method Summary
 State createTopLevelReaderState(StartTagInfo tag)
          creates a State object that will parse the element specified by tag parameter.
 Datatype getType(String localTypeName)
          resolves a type name to Datatype object.
 

Method Detail

createTopLevelReaderState

State createTopLevelReaderState(StartTagInfo tag)
creates a State object that will parse the element specified by tag parameter.

Returns:
null if given start tag is not recognized by this object. This method is called when an "island" of this vocabulary was found. The state returned from this method will be used to parse the root element of this island. The parent state of this state must implement TypeOwner or ExpressionOwner. In either case, the implementation must report its parsing result by calling either interface. If both interface is implemented, the implementation must notify via TypeOwner interface only and may not call methods of ExpressionOwner. If the parsed island is not a type definition (for example, comments or inclusion), the implementation may not call TypeOwner nor ExpressionOwner.

getType

Datatype getType(String localTypeName)
                 throws DatatypeException
resolves a type name to Datatype object.

Parameters:
localTypeName - local part of the qualified name, like "string" or "integer". prefix part must be removed by the caller.
Returns:
a non-null valid datatype object.
Throws:
DatatypeException - if the specified type name is a valid type name.