No Slide Title

Download Report

Transcript No Slide Title

Experience with XML
Schema
Ashok Malhotra
Schema Usage
 Mapping XML Schema and XML documents
controlled by the Schema to object classes
and instances.
 Storing XML Schemas and documents in the
database.
Mapping XML Schema to Object
Classes
 Choice
 Derivation by Restriction
 Facets
 Derivation Control
 Namespace Restrictions
 Problems with Annotations
Mapping XML Schema to Object
Classes - Choice
 Choice allows variations in the content of an
object.
 No equivalent construct in Java.
 Some languages support variant classes.
Mapping XML Schema to Object
Classes
 Derivation by restriction has no objectoriented equivalent.
 In the database, a restricted type is mapped
to a dummy subtype with no additional
fields. Restriction not enforced at SQL level.
 Similarly, for datatypes, facets have no
object-oriented equivalent.
 Must be checked at runtime.
Mapping XML Schema to Object
Classes – fixed, final, block, etc.
 Fixed and final restrict derivation from
elements.
 Block restricts use of derived types where
the parent type is expected.
 Only final #all has a Java equivalent.
Mapping XML Schema to Object
Classes – wildcard restrictions
 Wildcards can be restricted to elements
from a specific namespace.
 No equivalent object-oriented concept.
<complexType name=“test">
<sequence> <any
namespace="http://www.example.org"/>
</sequence> </complexType>
</complexType>
Mapping XML Schema to Object
Classes – problems with annotations
 Can an annotation be added to a “ref” ?
 If so, does it take precedence over an
annotation of the entity referred to?
 We assume annotations can be applied to a
‘ref’, and …
 The annotation element on an attribute ref is
associated with {Attribute Use}.
 The annotation element on a model group
ref or an element ref is associated with the
{particle}.
Managing XML Schemas and
documents in the database
 Support is provided for the following
tasks:
–
–
–
–
–
–
Registering XML Schemas.
Validating XML documents against a registered XML
Schema.
Generating XML Schema from object classes.
Generating a structured database mapping from XML
Schemas during XML Schema registration. This includes
generating SQL object types, collection types, and default
tables, and capturing the mapping information using
special attributes.
Performing manipulation (DML) and queries on XML
Schema-based XMLType tables.
Automatically inserting data into default tables when
schema-based XML instances are inserted into Oracle XML
DB repository using FTP, HTTP/WebDAV protocols and
other languages.
Managing XML Schemas and
documents in the database –
Substitution groups
 Instance data is stored in a
column/table corresponding to the
head element.
 Additional information includes the
actual element type.
 Also includes, namespace prefixes,
comments, PIs.
Managing XML Schemas and
documents in the database –
non-SQL datatypes
 Datatypes that cannot be represented
in SQL are mapped to a VARCHAR2
column.
 This is also on option for datatypes
that do map cleanly to SQL types e.g.
integer.
 Schema annotation can be used to
specify storage option.
Managing XML Schemas and
documents in the database –
key/keyref
 Not enforced at SQL level but at the
XML level.
 Key/keyref apply within a document
whereas, in most cases, such
constraints are useful over a document
collection.
Managing XML Schemas and
documents in the database –
wildcard with namespace exclusion
 Cannot define a wildcard that allows
elements not in a specified namespace
and also allows the null namespace.
 Needed to add proprietary extensions
to handle this case.
Managing XML Schemas and
documents in the database – redefine
 Redefine is the only XML Schema
feature not supported.
 No customer has asked for this, yet!