You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2001/10/18 16:59:15 UTC
cvs commit: xml-xerces/c/doc faq-parse.xml migration.xml program.xml releases.xml schema.xml
tng 01/10/18 07:59:15
Modified: c/doc faq-parse.xml migration.xml program.xml
releases.xml schema.xml
Log:
More documentation update for Xerces 1.5.2.
Revision Changes Path
1.27 +15 -3 xml-xerces/c/doc/faq-parse.xml
Index: faq-parse.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/faq-parse.xml,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- faq-parse.xml 2001/07/13 20:15:57 1.26
+++ faq-parse.xml 2001/10/18 14:59:15 1.27
@@ -9,7 +9,13 @@
<a>
- <p>See <jump href="schema.html">the Schema page. </jump></p>
+ <p>The &XercesCName; &XercesCVersion; contains an implementation
+ of a subset of the W3C XML Schema Language as specified
+ in the 2 May 2001 Recommendation for <jump
+ href="http://www.w3.org/TR/xmlschema-1/">Structures</jump>
+ and <jump href="http://www.w3.org/TR/xmlschema-2/">
+ Datatypes</jump>. See <jump href="schema.html">the Schema
+ page</jump> for details.</p>
</a>
</faq>
@@ -20,8 +26,14 @@
<a>
- <p> See <jump href="schema.html#supportedFeature">
- supported schema features in &XercesCName; &XercesCVersion;</jump></p>
+ <p>The &XercesCName; &XercesCVersion; contains an implementation
+ of a subset of the W3C XML Schema Language as specified
+ in the 2 May 2001 Recommendation for <jump
+ href="http://www.w3.org/TR/xmlschema-1/">Structures</jump>
+ and <jump href="http://www.w3.org/TR/xmlschema-2/">
+ Datatypes</jump>. You should not consider this implementation
+ complete or correct. Please refer to <jump href="schema.html#limitation">
+ the Schema Limitations </jump>for further details.</p>
</a>
</faq>
1.10 +23 -30 xml-xerces/c/doc/migration.xml
Index: migration.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/migration.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- migration.xml 2001/08/13 12:37:43 1.9
+++ migration.xml 2001/10/18 14:59:15 1.10
@@ -38,8 +38,8 @@
<s3 title="Compliance">
<p>Except for a couple of the very obscure (mostly related to
the 'standalone' mode), this version should be quite compliant
- to <jump href="http://www.w3.org/TR/REC-xml">XML 1.0</jump>. It also
- tracks the latest changes to DOM, SAX and Namespace Specification.
+ to <jump href="http://www.w3.org/TR/REC-xml">XML 1.0</jump>. It also
+ tracks the latest changes to DOM, SAX and Namespace Specification.
We have more than a thousand tests, some collected from various
public sources and some IBM generated, which are used to do
regression testing. The C++ parser is now passing all but a
@@ -68,60 +68,53 @@
<s2 title="Changes required to migrate to &XercesCName; &XercesCVersion;">
<p>There are some architectural changes between the &XercesCName;
- &XercesPreCVersion; and the &XercesCName; &XercesCVersion; releases
- of the parser, and as a result, some code has undergone restructuring
- as shown below. </p>
+ &XercesPreCVersion; and the &XercesCName; &XercesCVersion; releases
+ of the parser, and as a result, some code has undergone restructuring
+ as shown below. </p>
<anchor name="Reorganization"/>
<s3 title="Validator directory Reorganization">
<ul>
<li>common content model files such as DFAContentModel ...
- are moved to a new directory called src/validators/common</li>
+ are moved to a new directory called src/validators/common</li>
<li>DTD related files are moved to a new directory called src/validators/DTD</li>
<li>new directory src/validators/Datatype is created to store all datatype validators</li>
<li>new directory src/validators/schema is created to store Schema related files</li>
- </ul>
+ </ul>
</s3>
<anchor name="DTDValidator"/>
<s3 title="DTDValidator">
- <p> DTDValidator was design to scan, validate and store the DTD in &XercesCName; &XercesPreCVersion;
- or earlier. In &XercesCName; &XercesCVersion;, this process is broken down into three components:
+ <p> DTDValidator was design to scan, validate and store the DTD in &XercesCName; &XercesPreCVersion;
+ or earlier. In &XercesCName; &XercesCVersion;, this process is broken down into three components:
</p>
<ul>
<li>new class DTDScanner - to scan the DTD</li>
<li>new class DTDGrammar - to store the DTD Grammar</li>
<li>DTDValidator - to validate the DTD only</li>
- </ul>
+ </ul>
</s3>
</s2>
<anchor name="NewFeatures"/>
<s2 title="New features in &XercesCName; &XercesCVersion;">
- <p> Schema subset support is provided in this release. See
- <jump href="schema.html#supportedFeature">
- supported schema features in &XercesCName; &XercesCVersion;.</jump>. An
- experiemental IDOM is also available as well.
- </p>
-
+ <p>Schema subset support and an experimental IDOM are available
+ in this release.
+ </p>
<anchor name="Schema"/>
<s3 title="Schema Subset Support">
<ul>
- <li>Schema Subset support is added</li>
- <ul>
- <li>New function "setDoSchema" is added to DOM/SAX parser.</li>
- <li>New feature "http://apache.org/xml/features/validation/schema" is recognized by SAX2XMLReader.</li>
- <li>New classes such as SchemaValidator, TraverseSchema ... are added.</li>
- <li>The Scanner is enhanced to process schema.</li>
- </ul>
+ <li>New function "setDoSchema" is added to DOM/SAX parser.</li>
+ <li>New feature "http://apache.org/xml/features/validation/schema" is recognized by SAX2XMLReader.</li>
+ <li>New classes such as SchemaValidator, TraverseSchema ... are added.</li>
+ <li>The Scanner is enhanced to process schema.</li>
<li>New sample data files personal-schema.xml and personal.xsd.</li>
<li>New command line option "-s" for samples.</li>
- </ul>
- <p>
- See <jump href="schema.html#usage">
- Schema Usage</jump>
- </p>
+ </ul>
+ <p>
+ See <jump href="schema.html">the Schema page</jump> for details.
+ </p>
</s3>
<anchor name="IDOM"/>
@@ -138,8 +131,8 @@
<s2 title="Migration Archive">
- <p> For migration information from XML4C 2.x to &XercesCName; &XercesPreCVersion;,
- please refer to <jump href="migrate_archive.html">Migration Archive. </jump></p>
+ <p>For migration information from XML4C 2.x to &XercesCName; &XercesPreCVersion;,
+ please refer to <jump href="migrate_archive.html">Migration Archive. </jump></p>
</s2>
1.14 +189 -25 xml-xerces/c/doc/program.xml
Index: program.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/program.xml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- program.xml 2001/08/10 12:13:58 1.13
+++ program.xml 2001/10/18 14:59:15 1.14
@@ -38,7 +38,12 @@
<ul>
<li><link anchor="Motivation">Motivation behind new design</link></li>
<li><link anchor="IDOMClassNames">Class Names</link></li>
- <li><link anchor="IDOMObjMemMgmt">Objects and Memory Management</link></li>
+ <li><link anchor="IDOMObjMgmt">Objects Management</link></li>
+ <li><link anchor="IDOMMemMgmt">Memory Management</link></li>
+ <ul>
+ <li><link anchor="IDOMMemImplicit">Implicit Object Deletion</link></li>
+ <li><link anchor="IDOMMemExplicit">Explicit Object Deletion</link></li>
+ </ul>
<li><link anchor="DOMStringXMCh">DOMString vs. XMLCh</link></li>
</ul>
</ul>
@@ -722,14 +727,11 @@
</source>
</s3>
- <anchor name="IDOMObjMemMgmt"/>
- <s3 title="Objects and Memory Management">
- <p>The C++ IDOM implementation no longer uses reference counting for
- automatic memory management. The storage for a DOM document is
- associated with the document node object. Applications would use
- normal C++ pointers to directly access the implementation objects
- for Nodes in IDOM C++, while they would use object references in
- DOM C++.
+ <anchor name="IDOMObjMgmt"/>
+ <s3 title="Objects Management">
+ <p>Applications would use normal C++ pointers to directly access the
+ implementation objects for Nodes in IDOM C++, while they would use
+ object references in DOM C++.
</p>
<p>Consider the following code snippets</p>
@@ -752,9 +754,15 @@
docRootNode = someDocument.getDocumentElement();
docRootNode.appendChild(aNode);
</source>
+ </s3>
- <p>The IDOM C++ uses an independent storage allocator per document.
+ <anchor name="IDOMMemMgmt"/>
+ <s3 title="Memory Management">
+ <p>The C++ IDOM implementation no longer uses reference counting for
+ automatic memory management. The C++ IDOM uses an independent storage
+ allocator per document. The storage for a DOM document is
+ associated with the document node object.
The advantage here is that allocation would require no synchronization
in most cases (based on the the same threading model that we
have now - one thread active per document, but any number of
@@ -776,35 +784,192 @@
memory is automatically taken care of by the reference counting.
</p>
- <p>In C++ IDOM, there is an implict and explict object deletion. When parsing
- a document using an IDOMParser, the storage allocated will be automatically
- deleted when the parser instance is deleted (implicit). If a user is
- manually building a DOM tree in memory using the document factory methods,
- then the user needs to explicilty delete the document object to free all
- allocated memory.
+ <p>In C++ IDOM, there is an implict and explict object deletion.
</p>
+ </s3>
+ <anchor name="IDOMMemImplicit"/>
+ <s3 title="Implicit Object Deletion">
+ <p>When parsing a document using an IDOMParser, all memory allocated
+ for a DOM tree is associated to the DOM document. And this storage
+ will be automatically deleted when the parser instance is deleted (implicit).
+ </p>
+ <p>If you do multiple parse using the same IDOMParser instance, then
+ multiple DOM documents will be generated and saved in a vector pool.
+ All these documents (and thus all the allocated memory) won't be deleted
+ until the parser instance is destroyed. If you want to release the memory
+ back to the system but don't want to destroy the IDOMParser instance at this moment,
+ then you can call the method IDOMParser::resetDocumentPool to reset the document
+ vector pool, provided that you do not need access to these documents anymore.
+ </p>
+
+ <p>Consider the following code snippets: </p>
+
+ <source>
+ // C++ IDOM - implicit deletion
+ IDOMParser* parser = new IDOMParser();
+ parser->parse(xmlFile)
+ IDOM_Document *doc = parser->getDocument();
+
+ unsigned int i = 1000;
+ while (i > 0) {
+ parser->parse(xmlFile)
+ IDOM_Document* myDoc = parser->getDocument();
+ i--;
+ }
+
+ // all allocated memory associated with these 1001 DOM documents
+ // will be deleted implicitly when the parser instance is destroyed
+ delete parser;
+ </source>
+
+ <source>
+ // C++ IDOM - implicit deletion
+ // optionally release the memory
+ IDOMParser* parser = new IDOMParser();
+ unsigned int i = 1000;
+ while (i > 0) {
+ parser->parse(xmlFile)
+ IDOM_Document *doc = parser->getDocument();
+ i--;
+ }
+
+ // instead of waiting until the parser instance is destroyed,
+ // user can optionally choose to release the memory back to the system
+ // if does not need access to these 1000 parsed documents anymore.
+ parser->resetDocumentPool();
+
+ // now the parser has some fresh memory to work on for the following
+ // big loop
+ i = 1000;
+ while (i > 0) {
+ parser->parse(xmlFile)
+ IDOM_Document *doc = parser->getDocument();
+ i--;
+ }
+ delete parser;
+
+ </source>
+ </s3>
+
+ <anchor name="IDOMMemExplicit"/>
+ <s3 title="Explicit Object Deletion">
+ <p>If user is manually building a DOM tree in memory using the document factory methods,
+ then the user needs to explicilty delete the document object to free all the allocated memory.
+ It normally falls under the following 3 scenarios:
+ </p>
+ <ul>
+ <li>If a user is manually creating a DOM document using the document implementation
+ factory methods, IDOM_DOMImplementation::getImplementation()->createDocument,
+ then the user needs to explicilty delete the document object to free all
+ allocated memory. </li>
+ <li>If a user is creating a DocumentType object using the document implementation factory
+ method, IDOM_DOMImplementation::getImplementation()->createDocumentType, then
+ the user also needs to explicilty delete the document type object to free the
+ allocated memory.</li>
+ <li>Special case: If a user is creating a DocumentType using the document
+ implementation factory method, and clone the node WITHOUT assigning a document
+ owner to that documentType object, then the cloned node also needs to be explicitly
+ deleted.</li>
+ </ul>
+
<p>Consider the following code snippets: </p>
<source>
// C++ IDOM - explicit deletion
+// use the document implementation factory method to create a document type and a document
+IDOM_DocumentType* myDocType;
+IDOM_Document* myDocument;
+IDOM_Node* root;
+IDOM_Node* aNode;
+
+myDocType = IDOM_DOMImplementation::getImplementation()->createDocumentType(name, 0, 0);
+myDocument = IDOM_DOMImplementation::getImplementation()->createDocument(0, name, myDocType);
+root = myDocument->getDocumentElement();
+aNode = myDocument->createElement(anElementname);
+
+root->appendChild(aNode);
+
+// need to delete both myDocType and myDocument which are created through DOM Implementation
+delete myDocType;
+delete myDocument;
+ </source>
+
+ <source>
+// C++ IDOM - explicit deletion
+// use the document implementation factory method to create a document
+IDOM_DocumentType* myDocType;
IDOM_Document* myDocument;
+IDOM_Node* root;
IDOM_Node* aNode;
+
myDocument = IDOM_DOMImplementation::getImplementation()->createDocument();
-aNode = myDocument->createElement("ElementName");
-myDocument->appendChild(aNode);
+myDocType = myDocument->createDocumentType(name);
+root = myDocument->createElement(name);
+aNode = myDocument->createElement(anElementname);
+
+myDocument->appendChild(myDocType);
+myDocument->appendChild(root);
+root->appendChild(aNode);
+
+// the myDocType is created through myDocument, not through Document Implementation
+// thus no need to delete myDocType
delete myDocument;
</source>
<source>
-// C++ DOM - implicit deletion
-IDOM_Document myDocument;
-DOM_Node aNode;
-myDocument = DOM_DOMImplementation::getImplementation().createDocument();
-aNode = myDocument.createElement("ElementName");
-myDocument.appendChild(aNode);
+// C++ IDOM - explicit deletion
+// manually build a DOM document
+// clone the document type object which does not have an owner yet
+IDOM_DocumentType* myDocType1;
+IDOM_DocumentType* myDocType;
+IDOM_Document* myDocument;
+IDOM_Node* root;
+IDOM_Node* aNode;
+
+myDocType = IDOM_DOMImplementation::getImplementation()->createDocumentType(name, 0, 0);
+myDocType1 = (IDOM_DocumentType*) myDocType->cloneNode(false);
+myDocument = IDOM_DOMImplementation::getImplementation()->createDocument(0, name, myDocType);
+
+root = myDocument->getDocumentElement();
+aNode = myDocument->createElement(anElementname);
+
+root->appendChild(aNode);
+
+// myDocType does not have an owner yet when myDocType1 was cloned.
+// thus need to explicitly delete myDocType1
+delete myDocType1;
+delete myDocType;
+delete myDocument;
</source>
+ <source>
+// C++ IDOM - explicit deletion
+// manually build a DOM document
+// clone the document type object that has an owner already
+// thus no need to delete the cloned object
+IDOM_DocumentType* myDocType1;
+IDOM_DocumentType* myDocType;
+IDOM_Document* myDocument;
+IDOM_Node* root;
+IDOM_Node* aNode;
+
+myDocType = IDOM_DOMImplementation::getImplementation()->createDocumentType(name, 0, 0);
+myDocument = IDOM_DOMImplementation::getImplementation()->createDocument(0, name, myDocType);
+myDocType1 = (IDOM_DocumentType*) myDocType->cloneNode(false);
+
+root = myDocument->getDocumentElement();
+aNode = myDocument->createElement(anElementname);
+
+root->appendChild(aNode);
+
+// myDocType already has myDocument as the owner when myDocType1 was cloned
+// thus NO need to explicitly delete myDocType1
+delete myDocType;
+delete myDocument;
+ </source>
+ </s3>
+
<p>Key points to remember when using the C++ IDOM classes:</p>
<ul>
@@ -820,7 +985,6 @@
the IDOM parser when parsing an instance document.</li>
</ul>
- </s3>
<anchor name="DOMStringXMCh"/>
<s3 title="DOMString vs. XMLCh">
1.28 +29 -8 xml-xerces/c/doc/releases.xml
Index: releases.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/releases.xml,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- releases.xml 2001/10/15 16:27:34 1.27
+++ releases.xml 2001/10/18 14:59:15 1.28
@@ -20,8 +20,9 @@
all, <br/>
any, <br/>
anyAttribute, <br/>
- redefine, <br/>
annotation, <br/>
+ notation, <br/>
+ redefine, <br/>
circular import. <br/>
Add AnySimpleTypeDatatypeValidator. <br/>
Add XercesGroupInfo. <br/>
@@ -45,7 +46,7 @@
XMLFloat, <br/>
XMLInteger, <br/>
XMLNumber, <br/>
- XMLUri. <br/>
+ XMLUri.
</td>
</tr>
@@ -53,13 +54,33 @@
<td>2001-10-19</td>
<td>Tinny Ng</td>
<td> Schema:<br/>
- Support Unique Particle Attribution Constraint Checking, <br/>
- xsi:type, <br/>
+ Support xsi:type, <br/>
+ Unique Particle Attribution Constraint Checking, <br/>
anyAttribute in Scanner and Validator. <br/>
Add XercesElementWildCard, <br/>
AllContentModel, <br/>
- XMLInternalErrorHandler. <br/>
- Enable those derived dataype like nonPositiveinteger, negativeInteger ... etc.
+ XMLInternalErrorHandler.
+ </td>
+ </tr>
+
+ <tr>
+ <td>2001-10-18</td>
+ <td>Tinny Ng</td>
+ <td>[Bug 4015] IDDOMImplementation::createDocumentType hopelessly broken.
+ </td>
+ </tr>
+
+ <tr>
+ <td>2001-10-16</td>
+ <td>Khaled Noaman</td>
+ <td>[Bug 3750] GeneralAttributeCheck threading bug.
+ </td>
+ </tr>
+
+ <tr>
+ <td>2001-10-15</td>
+ <td>Khaled Noaman</td>
+ <td>[Bug 4177] setupRange uses non-portable code.
</td>
</tr>
@@ -102,7 +123,7 @@
<tr>
<td>2001-10-05</td>
<td>PeiYong Zhang</td>
- <td>[Bug 3831]: -1 returned from getIndex() needs to be checked.
+ <td>[Bug 3831] -1 returned from getIndex() needs to be checked.
</td>
</tr>
@@ -289,7 +310,7 @@
</tr>
<tr>
- <td>2001-07-27</td>
+ <td>2001/07/27</td>
<td>Tinny Ng</td>
<td>Fix bug in 'transcode' functions reported by Evgeniy Gabrilovich.
</td>
1.9 +51 -78 xml-xerces/c/doc/schema.xml
Index: schema.xml
===================================================================
RCS file: /home/cvs/xml-xerces/c/doc/schema.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- schema.xml 2001/07/31 15:47:20 1.8
+++ schema.xml 2001/10/18 14:59:15 1.9
@@ -2,13 +2,13 @@
<!DOCTYPE s1 SYSTEM "./dtd/document.dtd">
<s1 title="Schema">
<s2 title="Disclaimer">
- <p>Schema is not fully supported in &XercesCName; yet. But an
+ <p>Schema is not fully supported in &XercesCName; yet. But an
experimental implementation of a subset of the W3C XML
Schema language is now available for review in &XercesCName; &XercesCVersion;.
You should not consider this implementation complete or
- correct. The limitations of this implementation are
- detailed below. Please read this document before using
- &XercesCName; &XercesCVersion;.
+ correct. The limitations of this implementation are
+ detailed below. Please read this document before using
+ &XercesCName; &XercesCVersion;.
</p>
</s2>
<s2 title="Introduction">
@@ -29,99 +29,72 @@
Xerces-C mailing list &XercesCEmailAddress; </jump> .
</p>
</s2>
+ <anchor name="limitation"/>
<s2 title="Limitations">
<p>The XML Schema implementation in the &XercesCName; &XercesCVersion; is a
subset of the features defined in the 2 May 2001 XML Schema Recommendation.
</p>
</s2>
- <anchor name="supportedFeature"/>
- <s2 title='Features/Datatypes Supported'>
+ <s2 title='Features/Datatypes Not Supported'>
<ul>
- <li>Partial Simple type support </li>
+ <li>Identity Constraints</li>
+ <li>Particle Derivation Constraint Checking </li>
+ <li>Built-in Datatypes Not Supported</li>
<ul>
- <li> Yes: atomic simple type </li>
- <li> No: union and list </li>
- </ul>
- <li>Partial Complex type suppport </li>
- <ul>
- <li> Yes: choice, sequence </li>
- <li> No: group, all </li>
- </ul>
- <li>Element and Attribute Declaration </li>
- <ul>
- <li> No: any/anyAttribute </li>
- </ul>
- <li>SubsitutionGroup</li>
- <li>Subset of Built-in Datatypes</li>
- <ul>
<li>Primitive Datatypes</li>
- <ul>
- <li>string</li>
- <li>boolean</li>
- <li>decimal</li>
- <li>hexbinary</li>
- <li>base64binary</li>
- </ul>
- <li>Derived Datatypes</li>
<ul>
- <li>integer</li>
+ <li>duration</li>
+ <li>dateTime</li>
+ <li>time</li>
+ <li>date</li>
+ <li>gYearMonth</li>
+ <li>gYear</li>
+ <li>gMonthDay</li>
+ <li>gDay</li>
+ <li>gMonth</li>
</ul>
</ul>
- <li>xsi Markup</li>
- <ul>
- <li>Yes: xsi:nil</li>
- <li>Yes: xsi:schemaLocation and xsi:noNamespaceSchemaLocation</li>
- <li>No: xsi:type</li>
- </ul>
</ul>
- <p> Additional Experimental Features (not tested and subject to change, use as is)</p>
- <ul>
- <li>Complex type derivation support (simpleContent and complexContent).</li>
- <li>Element and attribute re-use using "ref".</li>
- <li>Include support</li>
- <li>Import Support</li>
- <li>Element declaration <any></li>
- <li>Subset of Built-in Datatypes</li>
- <ul>
- <li>Derived Datatypes</li>
- <ul>
- <li>normalizedString</li>
- <li>token</li>
- <li>language</li>
- <li>Name</li>
- <li>NCName</li>
- <li>NMTOKEN</li>
- <li>NMTOKENS</li>
- <li>ID</li>
- <li>IDREF</li>
- <li>IDREFS</li>
- <li>ENTITY</li>
- <li>ENTITIES</li>
- <li>nonNegativeInteger</li>
- </ul>
- </ul>
- </ul>
-
-
- <p>Other features in the Schema recommendation such as "redefine",
- "identity constraints" and others which are not mentioned above, are not supported
- yet. Also, particle and model group constraint checking is not yet fully implemented. But development is
- continuing and we target to implement all the features of the current XML Schema
- Recommendation before end of this year. Please note that the date is tentative and
- subject to change.
+ <p>Development is ongoing and we target to implement all the features of the
+ current XML Schema Recommendation before end of this year. Please note that
+ the date is tentative and subject to change.
</p>
</s2>
<s2 title="Other Limitations">
- <p>The schema must be 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>
+ <ul>
+ <li>No interface is provided for exposing the post-schema
+ validation infoset , beyond
+ that provided by DOM or SAX;</li>
+ <li> The parser permits situations in which there is
+ circular or multiple importing. However, the parser only permits forward
+ references--that is, references directed from the
+ direction of the schema cited in the instance
+ document to other schemas. For instance, if schema A
+ imports both schema B and schema C, then
+ any reference in schema B to an information item from
+ schema C will produce an error. Circular or multiple
+ <include>s have similar limitations.</li>
+ <li>Due to the way in which the parser constructs content
+ models for elements with complex content, specifying large
+ values for the <code>minOccurs</code> or <code>maxOccurs</code>
+ attributes may cause a stack overflow or very poor performance
+ in the parser. Large values for <code>minOccurs</code> should be
+ avoided, and <code>unbounded</code> should be used instead of
+ a large value for <code>maxOccurs</code>.</li>
+ <li>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, but not both.</li>
+ <li>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.</li>
+ </ul>
</s2>
<anchor name="usage"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org