blob: 76345f66a15d756e564d02d0f18d7379cb8c1897 [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE s1 SYSTEM 'dtd/document.dtd'>
<s1 title="Schema Implementation Limitations">
<s2 title="Introduction">
<p>This package contains an implementation of the W3C XML
Schema Language, a recommendation of the Worldwide Web Consortium
available in three parts:
<jump href="http://www.w3.org/TR/XMLSchema-0">XML Schema: Primer</jump> and
<jump href="http://www.w3.org/TR/XMLSchema-1">XML Schema: Structures</jump> and
<jump href="http://www.w3.org/TR/XMLSchema-2">XML Schema: Datatypes</jump>.
We consider this implementation to be complete except for the
limitations cited below. The implementation has been
extensively tested and known problem areas are set out below.
In this document we also discuss our interpretation of the
specifications where it seems to us particularly likely that
others might arrive at a different interpretation.
Please read this document before using this package.
</p>
</s2>
<s2 title="Limitations">
<ul>
<li> Length, minLength, and maxLength facets are limited to the value
2147483647. Items larger than this limit will not be validated
correctly.</li>
<li> Year and seconds values in date/time datatypes are limited to the
value 2147483647. Items larger than this limit will not be validated
correctly. </li>
</ul>
</s2>
<s2 title='Problem Areas/Known Bugs'>
<ul>
<li> Due to changes in the specification for Decimals in
JDK1.3, not all decimals that should be invalid according
to the Schema specs may be found by the parser;</li>
<li> When the same schema document is both imported and
included by the same schema document, only the first one
takes effect;</li>
<li> If an imported/included/redefined schema document is
specified via a relative path, the parser may not
always succeed in locating the document. Please implement and register a SAX
EntityResolver (<code>org.xml.sax.EntityResolver</code>) to customize
the parser&apos;s behaviour to your situation;</li>
</ul>
</s2>
<s2 title='Interpretation of Areas that are Unclear or
Implementation-Dependent'>
<ul>
<li> QName: the specification does not define the unit of length. We
chose to implement the length facet as being in units of XML characters
in the value space ( # of chars in namespace URI + ":" +
local part );</li>
<li> We have interpreted the specs as requiring
&lt;keyref&gt; Identity Constraints to refer to
&lt;key&gt; or &lt;unique&gt; identity constraints within
the scope of the elements to which the &lt;keyref&gt; is
attached. This interpretation is at variance with the
Schema Primer, which contains an example with a
&lt;keyref&gt; declared on an element used inside the
element of its corresponding &lt;key&gt;;</li>
</ul>
</s2>
<s2 title="Other Notes">
<p> The parsers contained in this package are able to read and
validate XML documents with the grammar specified in either
DTD or XML Schema format.
The schema is specified by the xsi:schemaLocation or
xsi:noNamespaceSchemaLocation attribute on the root
element of the document. The xsi prefix must be bound to the
Schema document instance namespace, as specified by the
Recommendation. See the sample provided in the
Usage section.</p>
</s2>
<s2 title="Usage">
<p>In this release, schema validation has been integrated with the
regular SAXParser and DOMParser classes. No special classes are
required to parse documents that use a schema.</p>
<p>Each document that uses XML Schema grammars must specify the location of the
grammars it uses by using an xsi:schemaLocation attribute if they use
namespaces, and an xsi:noNamespaceSchemaLocation attribute
otherwise. These are usually placed on the root / top-level element
in the document, though they may occur on any element; for more details see XML
Schema Part 1 section 4.3.2.
Here is an example with no target namespace: </p>
<source>&lt;document
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='document.xsd'&gt;
...
&lt;/document&gt;</source>
<p>Here is an example with a target namespace. Note that it is an
error to specify a different namespace than the target namespace
defined in the Schema.</p>
<source>&lt;document
xmlns='http://my.com'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://my.com document.xsd'&gt;
...
&lt;/document&gt;</source>
<p>Review the sample file, 'data/personal.xsd' for an example of an XML
Schema grammar.</p>
</s2>
</s1>