You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by an...@locus.apache.org on 2000/05/18 03:52:13 UTC
cvs commit: xml-xerces/java/docs design.css design.dtd design.xml design.xsl
andyc 00/05/17 18:52:13
Added: java/docs design.css design.dtd design.xml design.xsl
Log:
Xerces 2.0 Preliminary Architecture Documentation
I'm committing the thoughts that are happening towards re-organizing
the internal components and re-defining the interfaces between them
for Xerces 2.0. These designs are not final and should only be
considered a work in progress.
The design points are functionality, performance, modularity, and
simplicity. The new design, when completed, will allow the parser
to communicate additional information through the internals;
enable the caching of grammars in a pool of parser objects; and
allow the user to construct new types of parsers by plugging the
modules together like puzzle pieces.
Additional design documents will be added later.
The following files are being committed:
design.css CSS for resulting HTML
design.dtd Design grammar
design.xml Design
design.xsl Stylesheet to convert to HTML
Revision Changes Path
1.1 xml-xerces/java/docs/design.css
Index: design.css
===================================================================
.class { background: #DDDDFF }
.class-title { font: bold }
.interface { background: #FFDDDD }
.interface-title { font: italic }
.extends { }
.implements { }
.constants { }
.constant-title { }
.fields { }
.field-title { }
.constructors { }
.constructor-title { text-decoration: underline }
.methods { }
.method-title { text-decoration: underline }
.param-title { }
1.1 xml-xerces/java/docs/design.dtd
Index: design.dtd
===================================================================
<?xml encoding='US-ASCII'?>
<!-- overall organization -->
<!ELEMENT design (note*,types*,category*)>
<!ELEMENT types (category)*>
<!ELEMENT category (note*,(class|interface)*)>
<!ATTLIST category name CDATA #REQUIRED
package NMTOKEN #IMPLIED
>
<!-- markup -->
<!ELEMENT note (#PCDATA)>
<!-- types -->
<!ENTITY % types 'array|primitive|reference|collection'>
<!ELEMENT array (note*,(primitive|reference))>
<!ATTLIST array dimension CDATA '1'>
<!ELEMENT primitive EMPTY>
<!ATTLIST primitive type (long|int|short|char|boolean) #REQUIRED>
<!ELEMENT reference EMPTY>
<!ATTLIST reference idref IDREF #REQUIRED>
<!ELEMENT collection (note*,collector,items)>
<!ELEMENT collector (%types;)>
<!ELEMENT items (%types;)>
<!-- sections -->
<!ENTITY % visibility 'public|private|protected'>
<!ELEMENT constant (note*,(%types;))>
<!ATTLIST constant name NMTOKEN #REQUIRED
value CDATA #IMPLIED
visibility (%visibility;) 'public'
>
<!ELEMENT field (note*,(%types;))>
<!ATTLIST field name NMTOKEN #REQUIRED
visibility (%visibility;) 'protected'
>
<!ELEMENT constructor (note*,param*,throws*)>
<!ATTLIST constructor visibility (%visibility;) 'public'>
<!ELEMENT method (note*,param*,returns?,throws*)>
<!ATTLIST method name NMTOKEN #REQUIRED
visibility (%visibility;) 'public'
>
<!ELEMENT param (note*,(%types;))>
<!ATTLIST param name NMTOKEN #REQUIRED>
<!ELEMENT returns (note*,(%types;))>
<!ELEMENT throws (note*,reference)>
<!-- objects -->
<!ELEMENT class (note*,extends?,implements*,constant*,field*,constructor*,method*)>
<!ATTLIST class id ID #REQUIRED
name NMTOKEN #REQUIRED
visibility (%visibility;) #FIXED 'public'
>
<!ELEMENT interface (note*,extends*,constant*,method*)>
<!ATTLIST interface id ID #REQUIRED
name NMTOKEN #REQUIRED
visibility (%visibility;) #FIXED 'public'
>
<!ELEMENT extends (note*,reference)>
<!ELEMENT implements (note*,reference)>
1.1 xml-xerces/java/docs/design.xml
Index: design.xml
===================================================================
<?xml version='1.0' encoding='US-ASCII'?>
<!DOCTYPE design SYSTEM 'design.dtd' [
<!ENTITY package 'org.apache.xerces'>
]>
<design>
<!-- TYPES -->
<types>
<category name='Java Language'>
<class id='java-exception' name='Exception'/>
<class id='java-object' name='Object'/>
<class id='java-string' name='String'/>
</category>
<category name='Java I/O'>
<class id='java-io-exception' name='IOException'/>
</category>
<category name='Java Utils' package='java.util'>
<class id='java-empty-stack-exception' name='EmptyStackException'/>
<class id='java-hashtable' name='Hashtable'/>
<class id='java-locale' name='Locale'/>
<class id='java-missing-resource-exception' name='MissingResourceException'/>
<class id='java-stack' name='Stack'/>
<class id='java-vector' name='Vector'/>
</category>
<category name='Document Object Model' package='org.w3c.dom'>
<interface id='dom-document' name='Document'/>
</category>
<category name='Simple API for XML' package='org.xml.sax'>
<class id='sax-exception' name='SAXException'/>
<class id='sax-not-recognized-exception' name='SAXNotRecognizedException'/>
<class id='sax-not-supported-exception' name='SAXNotSupportedException'/>
<class id='sax-parse-exception' name='SAXParseException'/>
<interface id='sax-entity-resolver' name='EntityResolver'/>
<interface id='sax-error-handler' name='ErrorHandler'/>
<interface id='sax-input-source' name='InputSource'/>
<interface id='sax-locator' name='Locator'/>
<interface id='sax-parser' name='Parser'/>
<interface id='sax-xmlreader' name='XMLReader'/>
</category>
</types>
<!-- Category: BASE -->
<category name='Base' package='&package;.framework'>
<class id='exception' name='XMLException'>
<extends>
<reference idref='java-exception'/>
</extends>
<constructor/>
<constructor>
<param name='message'>
<reference idref='java-string'/>
</param>
</constructor>
<constructor>
<param name='exception'>
<reference idref='java-exception'/>
</param>
</constructor>
<constructor>
<param name='message'>
<reference idref='java-string'/>
</param>
<param name='exception'>
<reference idref='java-exception'/>
</param>
</constructor>
<method name='getException'>
<returns>
<reference idref='java-exception'/>
</returns>
</method>
</class>
<interface id='configurable' name='XMLConfigurable'>
<method name='reset'>
<param name='configurationManager'>
<reference idref='configuration-manager'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='setFeature'>
<param name='featureId'>
<reference idref='java-string'/>
</param>
<param name='state'>
<primitive type='boolean'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='setProperty'>
<param name='propertyId'>
<reference idref='java-string'/>
</param>
<param name='value'>
<reference idref='java-object'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
</interface>
<interface id='configuration-manager' name='XMLConfigurationManager'>
<method name='getFeature'>
<param name='featureId'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='getProperty'>
<param name='propertyId'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='java-object'/>
</returns>
<throws>
<reference idref='exception'/>
</throws>
</method>
</interface>
</category>
<!-- Category: ERROR HANDLING -->
<category name='Error Handling' package='&package;.framework'>
<class id='error-reporter' name='XMLErrorReporter'>
<constant name='SEVERITY_WARNING'>
<primitive type='short'/>
</constant>
<constant name='SEVERITY_ERROR'>
<primitive type='short'/>
</constant>
<constant name='SEVERITY_FATAL_ERROR'>
<primitive type='short'/>
</constant>
<field name='locale'>
<reference idref='java-locale'/>
</field>
<field name='messageProviders'>
<collection>
<collector>
<reference idref='java-hashtable'/>
</collector>
<items>
<reference idref='message-formatter'/>
</items>
</collection>
</field>
<field name='errorHandler'>
<reference idref='sax-error-handler'/>
</field>
<constructor/>
<method name='setLocale'>
<param name='locale'>
<reference idref='java-locale'/>
</param>
</method>
<method name='putMessageFormatter'>
<param name='domain'>
<reference idref='java-string'/>
</param>
<param name='messageFormatter'>
<reference idref='message-formatter'/>
</param>
</method>
<method name='getMessageFormatter'>
<param name='domain'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='message-formatter'/>
</returns>
</method>
<method name='removeMessageFormatter'>
<param name='domain'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='message-formatter'/>
</returns>
</method>
<method name='setErrorHandler'>
<param name='errorHandler'>
<reference idref='sax-error-handler'/>
</param>
</method>
<method name='reportError'>
<param name='domain'>
<reference idref='java-string'/>
</param>
<param name='key'>
<reference idref='java-string'/>
</param>
<param name='arguments'>
<array>
<reference idref='java-object'/>
</array>
</param>
<param name='severity'>
<primitive type='short'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
</class>
</category>
<!-- Category: SCANNING -->
<category name='Scanning' package='&package;.scanners'>
<class id='document-scanner' name='XMLDocumentScanner'>
<implements>
<reference idref='configurable'/>
</implements>
<implements>
<reference idref='entity-reader-change-listener'/>
</implements>
<field name='stringPool'>
<note>This field is initialized on reset.</note>
<reference idref='string-pool'/>
</field>
<field name='symbolTable'>
<note>This field is initialized on reset.</note>
<reference idref='symbol-table'/>
</field>
<field name='errorReporter'>
<note>This field is initialized on reset.</note>
<reference idref='error-reporter'/>
</field>
<field name='dtdScanner'>
<note>This field is initialized on reset.</note>
<reference idref='dtd-scanner'/>
</field>
<field name='namespacesEnabled'>
<note>This field is initialized on reset.</note>
<primitive type='boolean'/>
</field>
<field name='documentHandler'>
<reference idref='document-handler'/>
</field>
<constructor/>
<method name='setDocumentHandler'>
<param name='documentHandler'>
<reference idref='document-handler'/>
</param>
</method>
<method name='scanDocument'>
<throws>
<reference idref='exception'/>
</throws>
</method>
</class>
<interface id='document-handler' name='XMLDocumentHandler'>
<method name='startDocument'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='doctypeDecl'>
<param name='rootElement'>
<reference idref='qname'/>
</param>
<param name='publicId'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='systemId'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='comment'>
<param name='text'>
<note>Index into the string pool.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='processingInstruction'>
<param name='target'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='data'>
<note>Index into the string pool.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startElement'>
<param name='element'>
<reference idref='qname'/>
</param>
<!-- REVISIT: What should this be?
<param name='attributes'>
<reference idref='attributes'/>
</param>
-->
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='characters'>
<param name='ch'>
<array>
<primitive type='char'/>
</array>
</param>
<param name='offset'>
<primitive type='int'/>
</param>
<param name='length'>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endElement'>
<param name='element'>
<reference idref='qname'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startEntityReference'>
<param name='entity'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endEntityReference'>
<param name='entity'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startCDATASection'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endCDATASection'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endDocument'>
<throws>
<reference idref='exception'/>
</throws>
</method>
</interface>
<class id='dtd-scanner' name='XMLDTDScanner'>
<implements>
<reference idref='configurable'/>
</implements>
<implements>
<reference idref='entity-reader-change-listener'/>
</implements>
<field name='stringPool'>
<note>This field is initialized on reset.</note>
<reference idref='string-pool'/>
</field>
<field name='symbolTable'>
<note>This field is initialized on reset.</note>
<reference idref='symbol-table'/>
</field>
<field name='errorReporter'>
<note>This field is initialized on reset.</note>
<reference idref='error-reporter'/>
</field>
<field name='grammarPool'>
<note>This field is initialized on reset.</note>
<reference idref='grammar-pool'/>
</field>
<field name='namespacesEnabled'>
<note>This field is initialized on reset.</note>
<primitive type='boolean'/>
</field>
<field name='dtdHandler'>
<reference idref='dtd-handler'/>
</field>
<field name='dtdContentModelHandler'>
<reference idref='dtd-content-model-handler'/>
</field>
<constructor/>
<method name='setDTDHandler'>
<param name='dtdHandler'>
<reference idref='dtd-handler'/>
</param>
</method>
<method name='setDTDContentModelHandler'>
<param name='dtdHandler'>
<reference idref='dtd-content-model-handler'/>
</param>
</method>
<method name='scanDTD'>
<throws>
<reference idref='exception'/>
</throws>
</method>
</class>
<interface id='dtd-handler' name='XMLDTDHandler'>
<constant name='CONDITIONAL_INCLUDE'>
<primitive type='short'/>
</constant>
<constant name='CONDITIONAL_IGNORE'>
<primitive type='short'/>
</constant>
<method name='startDTD'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='comment'>
<param name='text'>
<note>Index into the string pool.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='processingInstruction'>
<param name='target'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='data'>
<note>Index into the string pool.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startExternalSubset'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endExternalSubset'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='elementDecl'>
<param name='element'>
<reference idref='qname'/>
</param>
<param name='contentModel'>
<note>Index into the string pool.</note>
<primitive type='int'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='attributeDecl'>
<param name='element'>
<reference idref='qname'/>
</param>
<param name='attribute'>
<reference idref='qname'/>
</param>
<!-- TODO
<param name='...'/>
-->
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startAttlist'>
<param name='element'>
<reference idref='qname'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endAttlist'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='entityDecl'>
<param name='entity'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='text'>
<note>Index into the string pool.</note>
<primitive type='int'/>
</param>
<param name='isPE'>
<primitive type='boolean'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='entityDecl'>
<param name='entity'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='publicId'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='systemId'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</param>
<param name='isPE'>
<primitive type='boolean'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<!-- TODO: Notation entity decl -->
<method name='notationDecl'>
<!-- TODO
<param name='...'/>
-->
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startConditionalSection'>
<param name='type'>
<primitive type='short'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endConditionalSection'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endDTD'>
<throws>
<reference idref='exception'/>
</throws>
</method>
</interface>
<interface id='dtd-content-model-handler' name='XMLDTDContentModelHandler'>
<constant name='SEPARATOR_CHOICE'>
<primitive type='short'/>
</constant>
<constant name='SEPARATOR_SEQUENCE'>
<primitive type='short'/>
</constant>
<constant name='OCCURS_ZERO_OR_ONE'>
<primitive type='short'/>
</constant>
<constant name='OCCURS_ZERO_OR_MORE'>
<primitive type='short'/>
</constant>
<constant name='OCCURS_ONE_OR_MORE'>
<primitive type='short'/>
</constant>
<method name='startContentModel'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='emptyContent'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='anyContent'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startMixedContent'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='mixedElement'>
<param name='element'>
<reference idref='qname'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endMixedContent'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='startChildrenContent'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='childrenStartGroup'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='childrenElement'>
<param name='element'>
<reference idref='qname'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='childrenSeparator'>
<param name='separator'>
<primitive type='short'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='childrenOccurrence'>
<param name='occurrence'>
<primitive type='short'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='childrenEndGroup'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endChildrenContent'>
<throws>
<reference idref='exception'/>
</throws>
</method>
<method name='endContentModel'>
<throws>
<reference idref='exception'/>
</throws>
</method>
</interface>
</category>
<!-- Category: READING -->
<category name='Reading' package='&package;.readers'>
<class id='entity-manager' name='XMLEntityManager'>
<implements>
<reference idref='configurable'/>
</implements>
<implements>
<reference idref='sax-locator'/>
</implements>
<field name='entityReaders'>
<collection>
<collector>
<reference idref='java-stack'/>
</collector>
<items>
<reference idref='entity-reader'/>
</items>
</collection>
</field>
<field name='entityReaderChangeListeners'>
<collection>
<collector>
<reference idref='java-vector'/>
</collector>
<items>
<reference idref='entity-reader-change-listener'/>
</items>
</collection>
</field>
<constructor/>
<method name='resolveEntity'>
<param name='systemId'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='entity-reader'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='prescanEncodingDecl'>
<param name='entityReader'>
<reference idref='entity-reader'/>
</param>
<returns>
<reference idref='entity-reader'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='pushEntityReader'>
<param name='entityReader'>
<reference idref='entity-reader'/>
</param>
</method>
<method name='peekEntityReader'>
<returns>
<reference idref='entity-reader'/>
</returns>
<throws>
<reference idref='java-empty-stack-exception'/>
</throws>
</method>
<method name='popEntityReader'>
<returns>
<reference idref='entity-reader'/>
</returns>
<throws>
<reference idref='java-empty-stack-exception'/>
</throws>
</method>
<method name='addEntityReaderChangeListener'>
<param name='entityReaderChangeListener'>
<reference idref='entity-reader-change-listener'/>
</param>
</method>
<method name='removeEntityReaderChangeListener'>
<param name='entityReaderChangeListener'>
<reference idref='entity-reader-change-listener'/>
</param>
</method>
</class>
<class id='entity-reader' name='XMLEntityReader'>
<implements>
<reference idref='configurable'/>
</implements>
<field name='entityManager'>
<reference idref='entity-manager'/>
</field>
<field name='byteOffset'>
<primitive type='long'/>
</field>
<field name='charOffset'>
<primitive type='long'/>
</field>
<constructor>
<param name='entityManager'>
<reference idref='entity-manager'/>
</param>
</constructor>
<method name='getByteOffset'>
<returns>
<primitive type='long'/>
</returns>
</method>
<method name='getCharOffset'>
<returns>
<primitive type='long'/>
</returns>
</method>
<method name='lookingAtChar'>
<param name='ch'>
<primitive type='char'/>
</param>
<param name='consume'>
<primitive type='boolean'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='lookingAtSpace'>
<param name='consume'>
<primitive type='boolean'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='lookingAtValidChar'>
<param name='consume'>
<primitive type='boolean'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanAttributeValue'>
<param name='quote'>
<primitive type='char'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanCharEntityRef'>
<param name='hexadecimal'>
<primitive type='boolean'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanContent'>
<!-- REVISIT: Is this necessary?
<param name='element'>
<reference idref='qname'/>
</param>
-->
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanEntityValue'>
<param name='quote'>
<primitive type='char'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanInvalidChar'>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanName'>
<param name='fastcheck'>
<primitive type='char'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanQName'>
<param name='fastcheck'>
<primitive type='char'/>
</param>
<param name='qname'>
<reference idref='qname'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='scanStringLiteral'>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='skipName'>
<param name='fastcheck'>
<primitive type='char'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='skipNmtoken'>
<param name='fastcheck'>
<primitive type='char'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='skipPastSpace'>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='skipToChar'>
<param name='ch'>
<primitive type='char'/>
</param>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
<method name='skippedString'>
<param name='s'>
<array>
<primitive type='char'/>
</array>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='java-io-exception'/>
</throws>
</method>
</class>
<interface id='entity-reader-change-listener' name='XMLEntityReaderChangeListener'>
<method name='entityReaderChanged'>
<param name='reader'>
<reference idref='entity-reader'/>
</param>
<throws>
<reference idref='exception'/>
</throws>
</method>
</interface>
</category>
<!-- Category: VALIDATING -->
<category name='Validating' package='&package;.validators'>
<class id='validator' name='XMLValidator'>
<implements>
<reference idref='configurable'/>
</implements>
<implements>
<reference idref='document-handler'/>
</implements>
<field name='stringPool'>
<note>This field is initialized on reset.</note>
<reference idref='string-pool'/>
</field>
<field name='symbolTable'>
<note>This field is initialized on reset.</note>
<reference idref='symbol-table'/>
</field>
<field name='errorReporter'>
<note>This field is initialized on reset.</note>
<reference idref='error-reporter'/>
</field>
<field name='grammarPool'>
<note>This field is initialized on reset.</note>
<reference idref='grammar-pool'/>
</field>
<field name='documentHandler'>
<reference idref='document-handler'/>
</field>
<constructor/>
</class>
<class id='grammar-pool' name='GrammarPool'>
<field name='grammars'>
<collection>
<collector>
<reference idref='java-hashtable'/>
</collector>
<items>
<reference idref='grammar'/>
</items>
</collection>
</field>
<constructor/>
<method name='putGrammar'>
<param name='targetNamespace'>
<reference idref='java-string'/>
</param>
<param name='grammar'>
<reference idref='grammar'/>
</param>
</method>
<method name='getGrammar'>
<param name='targetNamespace'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='grammar'/>
</returns>
</method>
<method name='removeGrammar'>
<param name='targetNamespace'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='grammar'/>
</returns>
</method>
</class>
<class id='grammar' name='Grammar'>
<field name='grammarDocument'>
<reference idref='dom-document'/>
</field>
<constructor/>
<method name='getGrammarDocument'>
<returns>
<reference idref='dom-document'/>
</returns>
</method>
<method name='getElementDeclIndex'>
<param name='elementDeclName'>
<primitive type='int'/>
</param>
<param name='scope'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='getElementDecl'>
<param name='elementDeclIndex'>
<primitive type='int'/>
</param>
<param name='elementDecl'>
<note>The values of this structure are set by this call.</note>
<reference idref='element-decl'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
</method>
<method name='getContentSpec'>
<param name='contentSpecIndex'>
<primitive type='int'/>
</param>
<param name='contentSpec'>
<note>The values of this structure are set by this call.</note>
<reference idref='content-spec'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
</method>
<method name='getFirstAttributeDeclIndex'>
<param name='elementDeclIndex'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='getNextAttributeDeclIndex'>
<param name='attributeDeclIndex'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='getAttributeDecl'>
<param name='attributeDeclIndex'>
<primitive type='int'/>
</param>
<param name='attributeDecl'>
<note>The values of this structure are set by this call.</note>
<reference idref='attribute-decl'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
</method>
<method name='getEntityDecl'>
<param name='entityDeclIndex'>
<primitive type='int'/>
</param>
<param name='entityDecl'>
<reference idref='entity-decl'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
</method>
<method name='getNotationDecl'>
<param name='notationDeclIndex'>
<primitive type='int'/>
</param>
<param name='notationDecl'>
<reference idref='notation-decl'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
</method>
<method name='getElementContentModel'>
<param name='elementDeclIndex'>
<primitive type='int'/>
</param>
<returns>
<reference idref='content-model'/>
</returns>
</method>
</class>
<class id='dtd-grammar' name='DTDGrammar'>
<extends>
<reference idref='grammar'/>
</extends>
<implements>
<reference idref='dtd-handler'/>
</implements>
<implements>
<reference idref='dtd-content-model-handler'/>
</implements>
<constructor/>
</class>
<class id='schema-grammar' name='SchemaGrammar'>
<extends>
<reference idref='grammar'/>
</extends>
<constructor/>
<constructor>
<param name='grammarDocument'>
<reference idref='dom-document'/>
</param>
</constructor>
<constructor>
<param name='grammarDocument'>
<reference idref='dom-document'/>
</param>
<param name='grammarPool'>
<reference idref='grammar-pool'/>
</param>
</constructor>
</class>
<class id='element-decl' name='XMLElementDecl'>
<constant name='TYPE_ANY'>
<primitive type='short'/>
</constant>
<constant name='TYPE_EMPTY'>
<primitive type='short'/>
</constant>
<constant name='TYPE_MIXED'>
<primitive type='short'/>
</constant>
<constant name='TYPE_CHILDREN'>
<primitive type='short'/>
</constant>
<constant name='TYPE_SIMPLE'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_DEFAULT'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_FIXED'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_IMPLIED'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_REQUIRED'>
<primitive type='short'/>
</constant>
<field name='name' visibility='public'>
<reference idref='qname'/>
</field>
<field name='scope' visibility='public'>
<primitive type='int'/>
</field>
<field name='type' visibility='public'>
<primitive type='short'/>
</field>
<field name='contentSpec' visibility='public'>
<primitive type='int'/>
</field>
<field name='list' visibility='public'>
<primitive type='boolean'/>
</field>
<field name='defaultType' visibility='public'>
<primitive type='short'/>
</field>
<field name='defaultValue' visibility='public'>
<reference idref='java-string'/>
</field>
<field name='datatypeValidator' visibility='public'>
<reference idref='datatype-validator'/>
</field>
<method name='setValues'>
<param name='name'>
<reference idref='qname'/>
</param>
<param name='scope'>
<primitive type='int'/>
</param>
<param name='type'>
<primitive type='short'/>
</param>
<param name='contentSpec'>
<primitive type='int'/>
</param>
<param name='list'>
<primitive type='boolean'/>
</param>
<param name='defaultType'>
<primitive type='short'/>
</param>
<param name='defaultValue'>
<reference idref='java-string'/>
</param>
<param name='datatypeValidator'>
<reference idref='datatype-validator'/>
</param>
</method>
<method name='clear'/>
</class>
<class id='content-spec' name='XMLContentSpec'>
<constant name='TYPE_CHOICE'>
<primitive type='short'/>
</constant>
<constant name='TYPE_LEAF'>
<primitive type='short'/>
</constant>
<constant name='TYPE_SEQUENCE'>
<primitive type='short'/>
</constant>
<constant name='TYPE_ZERO_OR_ONE'>
<primitive type='short'/>
</constant>
<constant name='TYPE_ZERO_OR_MORE'>
<primitive type='short'/>
</constant>
<constant name='TYPE_ONE_OR_MORE'>
<primitive type='short'/>
</constant>
<field name='type' visibility='public'>
<primitive type='short'/>
</field>
<field name='value' visibility='public'>
<primitive type='int'/>
</field>
<field name='otherValue' visibility='public'>
<primitive type='int'/>
</field>
<method name='setValues'>
<param name='type'>
<primitive type='short'/>
</param>
<param name='value'>
<primitive type='int'/>
</param>
<param name='otherValue'>
<primitive type='int'/>
</param>
</method>
<method name='clear'/>
</class>
<class id='attribute-decl' name='XMLAttributeDecl'>
<constant name='TYPE_CDATA'>
<primitive type='short'/>
</constant>
<constant name='TYPE_ENTITY'>
<primitive type='short'/>
</constant>
<constant name='TYPE_ENUMERATION'>
<primitive type='short'/>
</constant>
<constant name='TYPE_ID'>
<primitive type='short'/>
</constant>
<constant name='TYPE_IDREF'>
<primitive type='short'/>
</constant>
<constant name='TYPE_NMTOKEN'>
<primitive type='short'/>
</constant>
<constant name='TYPE_NOTATION'>
<primitive type='short'/>
</constant>
<constant name='TYPE_SIMPLE'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_DEFAULT'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_FIXED'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_IMPLIED'>
<primitive type='short'/>
</constant>
<constant name='DEFAULT_TYPE_REQUIRED'>
<primitive type='short'/>
</constant>
<field name='name' visibility='public'>
<reference idref='qname'/>
</field>
<field name='type' visibility='public'>
<primitive type='short'/>
</field>
<field name='list' visibility='public'>
<primitive type='boolean'/>
</field>
<field name='defaultType' visibility='public'>
<primitive type='short'/>
</field>
<field name='defaultValue' visibility='public'>
<reference idref='java-string'/>
</field>
<field name='datatypeValidator' visibility='public'>
<reference idref='datatype-validator'/>
</field>
<method name='setValues'>
<param name='name'>
<reference idref='qname'/>
</param>
<param name='type'>
<primitive type='short'/>
</param>
<param name='list'>
<primitive type='boolean'/>
</param>
<param name='defaultType'>
<primitive type='short'/>
</param>
<param name='defaultValue'>
<reference idref='java-string'/>
</param>
<param name='datatypeValidator'>
<reference idref='datatype-validator'/>
</param>
</method>
<method name='clear'/>
</class>
<class id='entity-decl' name='XMLEntityDecl'>
<field name='parentEntity' visibility='public'>
<primitive type='int'/>
</field>
<field name='name' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='publicId' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='systemId' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='notation' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='isPE' visibility='public'>
<primitive type='boolean'/>
</field>
<method name='setValues'>
<param name='parentEntity'>
<primitive type='int'/>
</param>
<param name='name'>
<primitive type='int'/>
</param>
<param name='publicId'>
<primitive type='int'/>
</param>
<param name='systemId'>
<primitive type='int'/>
</param>
<param name='notation'>
<primitive type='int'/>
</param>
<param name='isPE'>
<primitive type='boolean'/>
</param>
</method>
<method name='clear'/>
</class>
<class id='notation-decl' name='XMLNotationDecl'>
<field name='name' visibility='public'>
<primitive type='int'/>
</field>
<field name='publicId' visibility='public'>
<primitive type='int'/>
</field>
<field name='systemId' visibility='public'>
<primitive type='int'/>
</field>
<method name='setValues'>
<param name='name'>
<primitive type='int'/>
</param>
<param name='publicId'>
<primitive type='int'/>
</param>
<param name='systemId'>
<primitive type='int'/>
</param>
</method>
<method name='clear'/>
</class>
<interface id='datatype-validator-factory' name='DatatypeValidatorFactory'>
<method name='createDatatypeValidator'>
<param name='name'>
<reference idref='java-string'/>
</param>
<param name='base'>
<reference idref='datatype-validator'/>
</param>
<param name='facets'>
<collection>
<collector>
<reference idref='java-hashtable'/>
</collector>
<items>
<reference idref='java-string'/>
</items>
</collection>
</param>
<param name='list'>
<primitive type='boolean'/>
</param>
<returns>
<reference idref='datatype-validator'/>
</returns>
<throws>
<reference idref='invalid-datatype-facet-exception'/>
</throws>
<throws>
<reference idref='invalid-datatype-value-exception'/>
</throws>
</method>
</interface>
<interface id='datatype-validator' name='DatatypeValidator'>
<method name='getFacets'>
<returns>
<collection>
<collector>
<reference idref='java-hashtable'/>
</collector>
<items>
<reference idref='java-string'/>
</items>
</collection>
</returns>
</method>
<method name='validate'>
<param name='data'>
<reference idref='java-string'/>
</param>
<param name='state'>
<reference idref='java-object'/>
</param>
<returns>
<reference idref='java-object'/>
</returns>
<throws>
<reference idref='invalid-datatype-value-exception'/>
</throws>
</method>
<method name='compare'>
<param name='value1'>
<reference idref='java-string'/>
</param>
<param name='value2'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='int'/>
</returns>
<throws>
<reference idref='invalid-datatype-value-exception'/>
</throws>
</method>
</interface>
<class id='invalid-datatype-facet-exception' name='InvalidDatatypeFacetException'>
<extends>
<reference idref='exception'/>
</extends>
<constructor/>
<constructor>
<param name='message'>
<reference idref='java-string'/>
</param>
</constructor>
<constructor>
<param name='exception'>
<reference idref='java-exception'/>
</param>
</constructor>
<constructor>
<param name='message'>
<reference idref='java-string'/>
</param>
<param name='exception'>
<reference idref='java-exception'/>
</param>
</constructor>
</class>
<class id='invalid-datatype-value-exception' name='InvalidDatatypeValueException'>
<extends>
<reference idref='exception'/>
</extends>
<constructor/>
<constructor>
<param name='message'>
<reference idref='java-string'/>
</param>
</constructor>
<constructor>
<param name='exception'>
<reference idref='java-exception'/>
</param>
</constructor>
<constructor>
<param name='message'>
<reference idref='java-string'/>
</param>
<param name='exception'>
<reference idref='java-exception'/>
</param>
</constructor>
</class>
<interface id='content-model' name='ContentModelValidator'>
<method name='validate'>
<param name='children'>
<array>
<reference idref='qname'/>
</array>
</param>
<param name='offset'>
<primitive type='int'/>
</param>
<param name='length'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='whatCanGoHere'>
<param name='insertableElementsInfo'>
<reference idref='insertable-elements-info'/>
</param>
</method>
</interface>
<class id='insertable-elements-info' name='InsertableElementsInfo'>
<field name='canHoldPCData' visibility='public'>
<primitive type='boolean'/>
</field>
<field name='childCount' visibility='public'>
<primitive type='int'/>
</field>
<field name='currentChildren' visibility='public'>
<array>
<reference idref='qname'/>
</array>
</field>
<field name='insertAt' visibility='public'>
<primitive type='int'/>
</field>
<field name='isValidEOC' visibility='public'>
<primitive type='boolean'/>
</field>
<field name='possibleChildren' visibility='public'>
<array>
<reference idref='qname'/>
</array>
</field>
<field name='results' visibility='public'>
<array>
<primitive type='boolean'/>
</array>
</field>
<field name='resultsCount' visibility='public'>
<primitive type='int'/>
</field>
<method name='setValues'>
<param name='canHoldPCData'>
<primitive type='boolean'/>
</param>
<param name='childCount'>
<primitive type='int'/>
</param>
<param name='currentChildren'>
<array>
<reference idref='qname'/>
</array>
</param>
<param name='insertAt'>
<primitive type='int'/>
</param>
<param name='isValidEOC'>
<primitive type='boolean'/>
</param>
<param name='possibleChildren'>
<array>
<reference idref='qname'/>
</array>
</param>
<param name='results'>
<array>
<primitive type='boolean'/>
</array>
</param>
<param name='resultsCount'>
<primitive type='int'/>
</param>
</method>
<method name='clear'/>
</class>
</category>
<!-- Category: Parsing -->
<category name='Parsing' package='&package;.parsers'>
<class id='parser' name='XMLParser'>
<implements>
<reference idref='configuration-manager'/>
</implements>
<field name='stringPool'>
<reference idref='string-pool'/>
</field>
<field name='symbolTable'>
<reference idref='symbol-table'/>
</field>
<field name='entityManager'>
<reference idref='entity-manager'/>
</field>
<field name='errorReporter'>
<reference idref='error-reporter'/>
</field>
<constructor/>
<constructor visibility='protected'>
<param name='symbolTable'>
<reference idref='symbol-table'/>
</param>
</constructor>
<method name='setFeature'>
<param name='featureId'>
<reference idref='java-string'/>
</param>
<param name='state'>
<primitive type='boolean'/>
</param>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='getFeature'>
<param name='featureId'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='setProperty'>
<param name='propertyId'>
<reference idref='java-string'/>
</param>
<param name='value'>
<reference idref='java-object'/>
</param>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='getProperty'>
<param name='propertyId'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='java-object'/>
</returns>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='setEntityResolver'>
<param name='entityResolver'>
<reference idref='sax-entity-resolver'/>
</param>
</method>
<method name='setErrorHandler'>
<param name='errorHandler'>
<reference idref='sax-error-handler'/>
</param>
</method>
<method name='parse'>
<param name='systemId'>
<reference idref='java-string'/>
</param>
<throws>
<reference idref='java-io-exception'/>
</throws>
<throws>
<reference idref='sax-exception'/>
</throws>
</method>
<method name='parse'>
<param name='inputSource'>
<reference idref='sax-input-source'/>
</param>
<throws>
<reference idref='java-io-exception'/>
</throws>
<throws>
<reference idref='sax-exception'/>
</throws>
</method>
</class>
<class id='document-parser' name='XMLDocumentParser'>
<extends>
<reference idref='parser'/>
</extends>
<implements>
<reference idref='document-handler'/>
</implements>
<field name='scanner'>
<reference idref='document-scanner'/>
</field>
<field name='dtdScanner'>
<reference idref='dtd-scanner'/>
</field>
<field name='validator'>
<reference idref='validator'/>
</field>
<field name='grammarPool'>
<reference idref='grammar-pool'/>
</field>
<field name='datatypeValidatorFactory'>
<reference idref='datatype-validator-factory'/>
</field>
<constructor/>
<constructor visibility='protected'>
<param name='symbolTable'>
<reference idref='symbol-table'/>
</param>
<param name='grammarPool'>
<reference idref='grammar-pool'/>
</param>
</constructor>
</class>
<class id='domparser' name='DOMParser'>
<extends>
<reference idref='document-parser'/>
</extends>
<constructor/>
<constructor visibility='protected'>
<param name='symbolTable'>
<reference idref='symbol-table'/>
</param>
<param name='grammarPool'>
<reference idref='grammar-pool'/>
</param>
</constructor>
<method name='getDocument'>
<returns>
<reference idref='dom-document'/>
</returns>
</method>
</class>
<class id='saxparser' name='SAXParser'>
<extends>
<reference idref='document-parser'/>
</extends>
<implements>
<reference idref='dtd-handler'/>
</implements>
<implements>
<reference idref='sax-parser'/>
</implements>
<implements>
<reference idref='sax-xmlreader'/>
</implements>
<constructor/>
<constructor visibility='protected'>
<param name='symbolTable'>
<reference idref='symbol-table'/>
</param>
<param name='grammarPool'>
<reference idref='grammar-pool'/>
</param>
</constructor>
</class>
<class id='dtdparser' name='DTDParser'>
<extends>
<reference idref='parser'/>
</extends>
<implements>
<reference idref='configuration-manager'/>
</implements>
<implements>
<reference idref='dtd-handler'/>
</implements>
<implements>
<reference idref='dtd-content-model-handler'/>
</implements>
<field name='dtdScanner'>
<reference idref='dtd-scanner'/>
</field>
<field name='datatypeValidatorFactory'>
<reference idref='datatype-validator-factory'/>
</field>
<constructor>
<param name='symbolTable'>
<reference idref='symbol-table'/>
</param>
</constructor>
<method name='setFeature'>
<param name='featureId'>
<reference idref='java-string'/>
</param>
<param name='state'>
<primitive type='boolean'/>
</param>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='getFeature'>
<param name='featureId'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='boolean'/>
</returns>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='setProperty'>
<param name='propertyId'>
<reference idref='java-string'/>
</param>
<param name='value'>
<reference idref='java-object'/>
</param>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='getProperty'>
<param name='propertyId'>
<reference idref='java-string'/>
</param>
<returns>
<reference idref='java-object'/>
</returns>
<throws>
<reference idref='sax-not-recognized-exception'/>
</throws>
<throws>
<reference idref='sax-not-supported-exception'/>
</throws>
</method>
<method name='setEntityResolver'>
<param name='entityResolver'>
<reference idref='sax-entity-resolver'/>
</param>
</method>
<method name='setErrorHandler'>
<param name='errorHandler'>
<reference idref='sax-error-handler'/>
</param>
</method>
<method name='parse'>
<param name='systemId'>
<reference idref='java-string'/>
</param>
<throws>
<reference idref='java-io-exception'/>
</throws>
<throws>
<reference idref='sax-exception'/>
</throws>
</method>
<method name='parse'>
<param name='inputSource'>
<reference idref='sax-input-source'/>
</param>
<throws>
<reference idref='java-io-exception'/>
</throws>
<throws>
<reference idref='sax-exception'/>
</throws>
</method>
<method name='getDTD'>
<returns>
<reference idref='dtd-grammar'/>
</returns>
</method>
</class>
</category>
<!-- Category: UTILS -->
<category name='Utils' package='&package;.utils'>
<class id='string-pool' name='StringPool'>
<constructor/>
<method name='addString'>
<param name='string'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='addString'>
<param name='stringProducer'>
<reference idref='string-producer'/>
</param>
<param name='offset'>
<primitive type='int'/>
</param>
<param name='length'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='toString'>
<param name='stringIndex'>
<primitive type='int'/>
</param>
<returns>
<reference idref='java-string'/>
</returns>
</method>
</class>
<interface id='string-producer' name='StringProducer'>
<method name='toString'>
<param name='offset'>
<primitive type='int'/>
</param>
<param name='length'>
<primitive type='int'/>
</param>
<returns>
<reference idref='java-string'/>
</returns>
</method>
</interface>
<class id='symbol-table' name='SymbolTable'>
<field name='symbolHasher'>
<reference idref='symbol-hasher'/>
</field>
<constructor/>
<method name='addSymbol'>
<param name='symbol'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='addSymbol'>
<param name='buffer'>
<array>
<primitive type='char'/>
</array>
</param>
<param name='offset'>
<primitive type='int'/>
</param>
<param name='length'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='toString'>
<param name='symbolIndex'>
<primitive type='int'/>
</param>
<returns>
<reference idref='java-string'/>
</returns>
</method>
</class>
<interface id='symbol-hasher' name='SymbolHasher'>
<method name='hash'>
<param name='symbol'>
<reference idref='java-string'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
<method name='hash'>
<param name='buffer'>
<array>
<primitive type='char'/>
</array>
</param>
<param name='offset'>
<primitive type='int'/>
</param>
<param name='length'>
<primitive type='int'/>
</param>
<returns>
<primitive type='int'/>
</returns>
</method>
</interface>
<class id='qname' name='QName'>
<field name='prefix' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='localpart' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='rawname' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<field name='uri' visibility='public'>
<note>Index into the symbol table.</note>
<primitive type='int'/>
</field>
<method name='setValues'>
<param name='prefix'>
<primitive type='int'/>
</param>
<param name='localpart'>
<primitive type='int'/>
</param>
<param name='rawname'>
<primitive type='int'/>
</param>
<param name='uri'>
<primitive type='int'/>
</param>
</method>
<method name='clear'/>
</class>
<interface id='message-formatter' name='MessageFormatter'>
<method name='formatMessage'>
<param name='locale'>
<reference idref='java-locale'/>
</param>
<param name='key'>
<reference idref='java-string'/>
</param>
<param name='arguments'>
<array>
<reference idref='java-object'/>
</array>
</param>
<returns>
<reference idref='java-string'/>
</returns>
<throws>
<reference idref='java-missing-resource-exception'/>
</throws>
</method>
</interface>
</category>
</design>
1.1 xml-xerces/java/docs/design.xsl
Index: design.xsl
===================================================================
<?xml version='1.0' encoding='US-ASCII'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='design'>
<HTML>
<HEAD>
<TITLE>Design</TITLE>
<LINK rel='stylesheet' type='text/css' href='index.css'/>
<LINK rel='stylesheet' type='text/css' href='design.css'/>
</HEAD>
<BODY>
<H1 align='center'>Design</H1>
<H2>Classes and Interfaces</H2>
<xsl:for-each select='category'>
<xsl:apply-templates select='.'/>
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='category'>
<H3><xsl:value-of select='@name'/></H3>
<xsl:for-each select='class|interface'>
<BLOCKQUOTE>
<xsl:apply-templates select='.'/>
</BLOCKQUOTE>
</xsl:for-each>
</xsl:template>
<xsl:template match='class|interface'>
<A name='{@name}'>
<DL class='{name()}'>
<DT>
<xsl:value-of select='name()'/>
<xsl:text> </xsl:text>
<SPAN class='{name()}-title'>
<xsl:value-of select='@name'/>
</SPAN>
</DT>
<xsl:if test='extends'>
<DD class='extends'>
extends
<xsl:for-each select='extends'>
<xsl:call-template name='type'/>
</xsl:for-each>
</DD>
</xsl:if>
<xsl:if test='implements'>
<DD class='implements'>
implements
<xsl:for-each select='implements'>
<xsl:call-template name='type'/>
<xsl:if test='not(position()=last())'>
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
</DD>
</xsl:if>
<xsl:if test='constant'>
<DD class='constants'>
constants:
<UL>
<xsl:for-each select='constant'>
<LI>
<xsl:apply-templates select='.'/>
</LI>
</xsl:for-each>
</UL>
</DD>
</xsl:if>
<xsl:if test='field'>
<DD class='fields'>
fields:
<UL>
<xsl:for-each select='field'>
<LI>
<xsl:apply-templates select='.'/>
</LI>
</xsl:for-each>
</UL>
</DD>
</xsl:if>
<xsl:if test='constructor'>
<DD class='constructors'>
constructors:
<UL>
<xsl:for-each select='constructor'>
<LI>
<xsl:apply-templates select='.'/>
</LI>
</xsl:for-each>
</UL>
</DD>
</xsl:if>
<xsl:if test='method'>
<DD class='methods'>
methods:
<UL>
<xsl:for-each select='method'>
<LI>
<xsl:apply-templates select='.'/>
</LI>
</xsl:for-each>
</UL>
</DD>
</xsl:if>
</DL>
</A>
</xsl:template>
<xsl:template match='constant|field|param'>
<!--
<xsl:if test='not(name()="param") and not(@visibility="public")'>
<IMG alt='' src='{@visibility}.gif'/>
</xsl:if>
-->
<xsl:call-template name='type'/>
<xsl:text> </xsl:text>
<SPAN class='{name()}-title'>
<xsl:value-of select='@name'/>
</SPAN>
</xsl:template>
<xsl:template match='constructor'>
<!--
<xsl:if test='not(@visibility="public")'>
<IMG alt='' src='{@visibility}.gif'/>
</xsl:if>
-->
<SPAN class='constructor-title'>
<xsl:value-of select='../@name'/>
</SPAN>
(
<xsl:for-each select='param'>
<xsl:apply-templates select='.'/>
<xsl:if test='not(position()=last())'>
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
)
</xsl:template>
<xsl:template match='method'>
<!--
<xsl:if test='not(@visibility="public")'>
<IMG alt='' src='{@visibility}.gif'/>
</xsl:if>
-->
<SPAN class='method-title'>
<xsl:value-of select='@name'/>
</SPAN>
(
<xsl:for-each select='param'>
<xsl:apply-templates select='.'/>
<xsl:if test='not(position()=last())'>
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
)
<xsl:for-each select='returns'>
:
<xsl:call-template name='type'/>
</xsl:for-each>
</xsl:template>
<xsl:template name='type'>
<xsl:apply-templates select='array|primitive|reference|collection'/>
</xsl:template>
<xsl:template match='array'>
<xsl:call-template name='type'/>[]
</xsl:template>
<xsl:template match='primitive'>
<xsl:value-of select='@type'/>
</xsl:template>
<xsl:template match='reference'>
<xsl:choose>
<xsl:when test='id(@idref)[name()="interface"]'>
<SPAN class='interface-title'>
<xsl:value-of select='id(@idref)/@name'/>
</SPAN>
</xsl:when>
<xsl:otherwise>
<SPAN class='class-title'>
<xsl:value-of select='id(@idref)/@name'/>
</SPAN>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match='collection'>
<xsl:for-each select='collector'>
<xsl:call-template name='type'/>
</xsl:for-each>
<
<xsl:for-each select='items'>
<xsl:call-template name='type'/>
</xsl:for-each>
>
</xsl:template>
</xsl:stylesheet>