Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.jdbc.schema
Class XMLSchemaParser

    java.lang.Object
      org.xml.sax.helpers.DefaultHandler
          org.apache.openjpa.lib.meta.XMLMetaDataParser
              org.apache.openjpa.jdbc.schema.XMLSchemaParser

All Implemented Interfaces:
  SchemaParser, MetaDataParser, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, LexicalHandler

    public class XMLSchemaParser

extends XMLMetaDataParser
implements SchemaParser

Custom SAX parser used to parse `Schema` objects. The parser will place all parsed schemas into the current `SchemaGroup`, set via the `setSchemaGroup(org.apache.openjpa.jdbc.schema.SchemaGroup)` method. This allows parsing of multiple files into a single schema group. The parser deserializes from the following XML format:
`<!ELEMENT schemas (schema)+>
<!ELEMENT schema (table|sequence)+>
<!ATTLIST schema name CDATA #IMPLIED>
<!ELEMENT table (column|index|pk|fk|unique)+>
<!ATTLIST table name CDATA #REQUIRED>
<!ELEMENT column EMPTY>
<!ATTLIST column name CDATA #REQUIRED>
<!ATTLIST column type (array|bigint|binary|bit|blob|char|clob |date|decimal|distinct|double|float|integer|java_object |longvarbinary|longvarchar|null|numeric|other|real|ref|smallint|struct |time|timstamp|tinyint|varbinary|varchar) #REQUIRED>
<!ATTLIST column type-name CDATA #IMPLIED>
<!ATTLIST column size CDATA #IMPLIED>
<!ATTLIST column decimal-digits CDATA #IMPLIED>
<!ATTLIST column not-null (true|false) "false">
<!ATTLIST column default CDATA #IMPLIED>
<!ATTLIST column auto-assign (true|false) "false">
<!ELEMENT index (on)*>
<!ATTLIST index name CDATA #REQUIRED>
<!ATTLIST index column CDATA #IMPLIED>
<!ATTLIST index unique (true|false) "false">
<!ELEMENT on EMPTY>
<!ATTLIST on column CDATA #REQUIRED>
<!ELEMENT pk (on)*>
<!ATTLIST pk name CDATA #IMPLIED>
<!ATTLIST pk column CDATA #IMPLIED>
<!ELEMENT fk (join)*>
<!ATTLIST fk name CDATA #IMPLIED>
<!ATTLIST fk deferred (true|false) "false">
<!ATTLIST fk column CDATA #IMPLIED>
<!ATTLIST fk to-table CDATA #REQUIRED>
<!ATTLIST fk delete-action (cascade|default|restrict|none|null) "none">
<!ATTLIST fk update-action (cascade|default|restrict|none|null) "none">
<!ELEMENT unique (on)*>
<!ATTLIST unique name CDATA #IMPLIED>
<!ATTLIST unique column CDATA #IMPLIED>
<!ATTLIST unique deferred (true|false) "false">
<!ELEMENT join EMPTY>
<!ATTLIST join column CDATA #IMPLIED>
<!ATTLIST join value CDATA #IMPLIED>
<!ATTLIST join to-column CDATA #REQUIRED>
<!ELEMENT sequence EMPTY>
<!ATTLIST sequence name CDATA #REQUIRED>
<!ATTLIST sequence initial-value CDATA #IMPLIED>
<!ATTLIST sequence increment CDATA #IMPLIED>
<!ATTLIST sequence allocate CDATA #IMPLIED>
` Schema parsers are not threadsafe.

Author:
  Abe White

Nested Class Summary
`static class` | `XMLSchemaParser.UniqueInfo` Used to hold unique constraint info before it is resolved.

Field Summary

Fields inherited from class org.apache.openjpa.lib.meta.XMLMetaDataParser
`_extendedNamespace, _openjpaNamespace`

Constructor Summary
`XMLSchemaParser(JDBCConfiguration conf)` Constructor.

Method Summary
`protected void` | `endElement(String name)` Override this method marking the end of some element.
`protected void` | `finish()` Parse the schema relating to the given class.
`boolean` | `getDelayConstraintResolve()` Delay resolution of foreign key constraints until `SchemaParser.resolveConstraints()` is called.
`protected Reader` | `getDocType()` Override this method to return any `DOCTYPE` declaration that should be dynamically included in xml documents that will be validated.
`SchemaGroup` | `getSchemaGroup()` Return the current schema group.
`protected void` | `reset()` Override this method to clear any state and ready the parser for a new document.
`void` | `resolveConstraints()` If this parser is in delayed resolve mode, resolve all constraints.
`void` | `setDelayConstraintResolve(boolean delay)` Delay resolution of foreign key constraints until `SchemaParser.resolveConstraints()` is called.
`void` | `setSchemaGroup(SchemaGroup group)` Set the current schema group; this clears all state from the last group.
`protected boolean` | `startElement(String name, Attributes attrs)` Override this method marking the start of some element.

Methods inherited from class org.apache.openjpa.lib.meta.XMLMetaDataParser
`addComments, addResult, characters, clear, clearDeferredMetaData, comment, currentClassLoader, currentComments, currentDepth, currentLocation, currentText, endCDATA, endDTD, endElement, endEntity, error, fatalError, getClassLoader, getException, getException, getException, getLexicalHandler, getLocation, getLog, getOverrideContextClassloader, getParseComments, getParseText, getResults, getSchemaSource, getSourceFile, getSourceIsSystemId, getSourceName, getSuffix, ignoreContent, isCaching, isParsing, isValidating, parse, parse, parse, parse, parse, parse, parsed, parseNewResource, setCaching, setClassLoader, setDocumentLocator, setLexicalHandler, setLocation, setLog, setOverrideContextClassloader, setParseComments, setParseText, setParsing, setSourceIsSystemId, setSuffix, setValidating, startCDATA, startDTD, startElement, startEntity`

Methods inherited from class org.xml.sax.helpers.DefaultHandler
`endDocument, endPrefixMapping, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.openjpa.lib.meta.MetaDataParser
`clear, getResults, parse, parse, parse, parse, parse, parse, setClassLoader`

Constructor Detail

### XMLSchemaParser

    public XMLSchemaParser(JDBCConfiguration conf)

  Constructor. Supply configuration.

Method Detail

### getDelayConstraintResolve

    public boolean getDelayConstraintResolve()

  Description copied from interface: `SchemaParser`
  Delay resolution of foreign key constraints until `SchemaParser.resolveConstraints()` is called. This allows you to parse multiple resources where a foreign key in one resource might refer to a table in another.

  Specified by:
    `getDelayConstraintResolve` in interface `SchemaParser`

### setDelayConstraintResolve

    public void setDelayConstraintResolve(boolean delay)

  Description copied from interface: `SchemaParser`
  Delay resolution of foreign key constraints until `SchemaParser.resolveConstraints()` is called. This allows you to parse multiple resources where a foreign key in one resource might refer to a table in another.

  Specified by:
    `setDelayConstraintResolve` in interface `SchemaParser`

### resolveConstraints

    public void resolveConstraints()

  Description copied from interface: `SchemaParser`
  If this parser is in delayed resolve mode, resolve all constraints.

  Specified by:
    `resolveConstraints` in interface `SchemaParser`

### getSchemaGroup

    public SchemaGroup getSchemaGroup()

  Description copied from interface: `SchemaParser`
  Return the current schema group.

  Specified by:
    `getSchemaGroup` in interface `SchemaParser`

### setSchemaGroup

    public void setSchemaGroup(SchemaGroup group)

  Description copied from interface: `SchemaParser`
  Set the current schema group; this clears all state from the last group.

  Specified by:
    `setSchemaGroup` in interface `SchemaParser`

### finish

    protected void finish()

  Parse the schema relating to the given class. The schemas will be added to the current schema group.

  Overrides:
    `finish` in class `XMLMetaDataParser`

### reset

    protected void reset()

  Description copied from class: `XMLMetaDataParser`
  Override this method to clear any state and ready the parser for a new document. Subclasses should call `super.reset()` to clear superclass state.

  Overrides:
    `reset` in class `XMLMetaDataParser`

### getDocType

    protected Reader getDocType()
                         throws IOException

  Description copied from class: `XMLMetaDataParser`
  Override this method to return any `DOCTYPE` declaration that should be dynamically included in xml documents that will be validated. Returns null by default.

  Overrides:
    `getDocType` in class `XMLMetaDataParser`
  Throws:
    `IOException`

### startElement

    protected boolean startElement(String name,
                                   Attributes attrs)
                            throws SAXException

  Description copied from class: `XMLMetaDataParser`
  Override this method marking the start of some element. If this method returns false, the content of the element and the end element event will be ignored.

  Specified by:
    `startElement` in class `XMLMetaDataParser`
  Throws:
    `SAXException`

### endElement

    protected void endElement(String name)

  Description copied from class: `XMLMetaDataParser`
  Override this method marking the end of some element.

  Specified by:
    `endElement` in class `XMLMetaDataParser`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.