blob: 8c53e76afa8da5ff2263ba53ffdfcddc1ee4b865 [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "./dtd/document.dtd">
<s1 title="Features">
<s2 title="Setting Features">
<anchor name="features"/>
<p>To set a feature on either org.apache.xerces.parsers.SAXParser or
org.apache.xerces.parsers.DOMParser, you should use the SAX2
method <code>setFeature(String,boolean)</code>. To query a
feature, use the SAX2 method <code>getFeature(String)</code>.</p>
<p>For example, to turn on validation:</p>
<source>SAXParser p=new SAXParser();
try {
p.setFeature("http://xml.org/sax/features/validation", true);
} catch (SAXException e) {
System.out.println("error in setting up parser feature");
}</source>
</s2>
<s2 title="General Features">
<anchor name="validation"/>
<p>http://xml.org/sax/features/validation</p>
<table>
<tr><th>True:</th> <td>Validate the document.</td></tr>
<tr><th>False:</th> <td>Do not validate the document.</td></tr>
<tr><th>Default:</th> <td>false</td></tr>
<tr><th>Access:</th> <td>(parsing) read-only; (not parsing) read/write</td></tr>
<tr><th>Note:</th> <td>If this feature is set to true, the document must specify a grammar.
If this feature is set to false, the document may specify a grammar
and that grammar will be parsed but no validation of the document
contents will be performed.</td></tr>
<tr><th>See:</th> <td><link anchor="dynamic">http://apache.org/xml/features/validation/dynamic</link>
<br/><link anchor="namespaces">http://xml.org/sax/features/namespaces</link></td></tr>
</table>
<anchor name="external-general-entities"/>
<p>http://xml.org/sax/features/external-general-entities</p>
<table>
<tr><th>True:</th> <td>Include external general (text) entities.</td></tr>
<tr><th>False:</th> <td>Do not include external general entities.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Access:</th> <td>(parsing) read-only; (not parsing) read/write</td></tr>
<tr><th>See:</th>
<td><link anchor="external-parameter-entities">http://xml.org/sax/features/external-parameter-entities</link></td></tr>
</table>
<anchor name="external-parameter-entities"/>
<p>http://xml.org/sax/features/external-parameter-entities</p>
<table>
<tr><th>True:</th> <td>Include external parameter entities and the external DTD subset.</td></tr>
<tr><th>False:</th> <td>Do not include external parameter entities or the external DTD subset.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Access:</th> <td>(parsing) read-only; (not parsing) read/write</td></tr>
<tr><th>See:</th>
<td><link anchor="external-parameter-entities">http://xml.org/sax/features/external-parameter-entities</link></td></tr>
</table>
<anchor name="namespaces"/>
<p>http://xml.org/sax/features/namespaces</p>
<table>
<tr><th>True:</th> <td>Perform namespace processing: prefixes will be stripped off element and
attribute names and replaced with the corresponding namespace URIs. By
default, the two will simply be concatenated, but the namespace-sep core
property allows the application to specify a delimiter string for
separating the URI part and the local part.</td></tr>
<tr><th>False:</th> <td>Do not perform namespace processing.</td></tr>
<tr><th>Default:</th> <td>false</td></tr>
<tr><th>Access:</th> <td>(parsing) read-only; (not parsing) read/write</td></tr>
<tr><th>Note:</th> <td>If the validation feature is set to true, then the document must contain
a grammar that supports the use of namespaces.</td></tr>
<tr><th>See:</th> <td><link anchor="validation">http://xml.org/sax/features/validation</link>
<br/><link idref="properties" anchor="namespace-sep">http://xml.org/sax/properties/namespace-sep</link></td></tr>
</table>
<anchor name="schema"/>
<p>http://apache.org/xml/features/validation/schema</p>
<table>
<tr><th>True:</th> <td>Turn on XML Schema support.</td></tr>
<tr><th>False:</th> <td>Turn off XML Schema support.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
</table>
<anchor name="dynamic"/>
<p>http://apache.org/xml/features/validation/dynamic</p>
<table>
<tr><th>True:</th> <td>The parser will validate the document only if a grammar is specified.</td></tr>
<tr><th>False:</th> <td>Validation is determined by the state of the
<link anchor="validation">http://xml.org/sax/features/validation</link> feature.</td></tr>
<tr><th>Default:</th> <td>false</td></tr>
<tr><th>See:</th> <td><link anchor="validation">http://xml.org/sax/features/validation</link></td></tr>
</table>
<anchor name="warn-on-duplicate-attdef"/>
<p>http://apache.org/xml/features/validation/warn-on-duplicate-attdef</p>
<table>
<tr><th>True:</th><td>Warn on duplicate attribute declaration.</td></tr>
<tr><th>False:</th><td>Do not warn on duplicate attribute declaration.</td></tr>
<tr><th>Default:</th><td>true</td></tr>
</table>
<anchor name="warn-on-undeclared-elemdef"/>
<p>http://apache.org/xml/features/validation/warn-on-undeclared-elemdef</p>
<table>
<tr><th>True:</th> <td>Warn if element referenced in content model is not declared.</td></tr>
<tr><th>False:</th> <td>Do not warn if element referenced in content model is not declared.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
</table>
<anchor name="allow-java-encodings"/>
<p>http://apache.org/xml/features/allow-java-encodings</p>
<table>
<tr><th>True:</th> <td>Allow Java encoding names in XMLDecl and TextDecl line.</td></tr>
<tr><th>False:</th> <td>Do not allow Java encoding names in XMLDecl and TextDecl line.</td></tr>
<tr><th>Default:</th> <td>false</td></tr>
<tr><th>Note:</th> <td>A true value for this feature allows the encoding of the file to be
specified as a Java encoding name as well as the standard ISO encoding
name. Be aware that other parsers may not be able to use Java encoding
names. If this feature is set to false, an error will be generated if
Java encoding names are used.</td></tr>
</table>
<anchor name="continue-after-fatal-error"/>
<p>http://apache.org/xml/features/continue-after-fatal-error</p>
<table>
<tr><th>True:</th><td>Continue after fatal error.</td></tr>
<tr><th>False:</th><td>Stops parse on first fatal error.</td></tr>
<tr><th>Default:</th><td>false</td></tr>
</table>
<anchor name="load-dtd-grammar"/>
<p>http://apache.org/xml/features/nonvalidating/load-dtd-grammar</p>
<table>
<tr><th>True:</th><td> Will load the DTD Grammar, based on the information provided in DTD,
add default attribute information and set the attribute type when parsing.</td></tr>
<tr><th>False:</th><td>Will ignore the DTD grammar.</td></tr>
<tr><th>Default:</th><td>true</td></tr>
<tr><th>Note:</th> <td>This feature functions only when the validation is turned off.</td></tr>
</table>
</s2>
<s2 title="DOM Features">
<anchor name="defer-node-expansion"/>
<p>http://apache.org/xml/features/dom/defer-node-expansion</p>
<table>
<tr><th>True:</th> <td>Lazy DOM node expansion.</td></tr>
<tr><th>False:</th> <td>Full DOM node expansion.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Note:</th> <td>This feature only applies when the
<link idref="properties" anchor="document-class-name">http://apache.org/xml/properties/dom/document-class-name</link> property is
set to a value other than the name of the default document factory.
If this feature is set to true, the DOM nodes in the returned
document are expanded as the tree is traversed. This feature allows
the parser to return a document faster than if the tree is fully
expanded during parsing and improves memory usage when the whole
tree is not traversed.</td></tr>
<tr><th>See</th> <td><link idref="properties" anchor="document-class-name">http://apache.org/xml/properties/dom/document-class-name</link></td></tr>
</table>
<anchor name="create-entity-ref-nodes"/>
<p>http://apache.org/xml/features/dom/create-entity-ref-nodes</p>
<table>
<tr><th>True:</th> <td>Create EntityReference nodes in the DOM tree. The EntityReference nodes and their child nodes will be read-only.</td></tr>
<tr><th>False:</th> <td>Do not create EntityReference nodes in the DOM tree. No EntityReference nodes will be created, only the nodes corresponding to their fully expanded sustitution text will be created.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Note:</th> <td>This feature only affects the appearance of EntityReference nodes in
the DOM tree. The document will always contain the entity reference
child nodes.</td></tr>
</table>
<anchor name="include-ignorable-whitespace"/>
<p>http://apache.org/xml/features/dom/include-ignorable-whitespace</p>
<table>
<tr><th>True:</th> <td>Includes text nodes that can be
considered "ignorable whitespace" in the DOM tree.</td></tr>
<tr><th>False:</th> <td>Does not include ignorable whitespace in the DOM tree.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Note:</th> <td>The only way that the parser can determine if text is ignorable is
by reading the associated grammar and having a content model for
the document. When ignorable whitespace text nodes are included in
the DOM tree, they will be flagged as ignorable. The ignorable flag
can be queried by calling the TextImpl#isIgnorableWhitespace():boolean
method.</td></tr>
</table>
<anchor name="grammar-access"/>
<p>http://apache.org/xml/features/domx/grammar-access</p>
<table>
<tr><th>True:</th> <td>Creates nodes that describe the grammar in the DOM tree.</td></tr>
<tr><th>False:</th> <td>Does not create create grammar access nodes in the DOM
tree. This setting makes the DOM behave as a standard
DOM Level 1 implementation.</td></tr>
<tr><th>Default:</th> <td>false</td></tr>
<tr><th>Note:</th> <td>The grammar access nodes are appended as children of the
DocumentType node. The grammar is specified as an
XML Schema document tree, whether it was read from a
document with an associated DTD or XML Schema grammar.
This is currently a violation of the DOM Level 1
specification.
<br/><em>**** This is an experimental feature that is not guaranteed </em>
<br/><em>**** to be supported in future versions of
the parser.</em></td></tr>
</table>
</s2>
<s2 title="SAX Features">
<!--
<anchor name="use-locator"/>
<p>http://xml.org/sax/features/use-locator</p>
<table>
<tr><th>True:</th> <td>Provide a Locator using the DocumentHandler setDocumentLocator callback.</td></tr>
<tr><th>False:</th> <td>Explicitly allow the parser not to provide a Locator (but it still may).</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Note:</th> <td>Xerces-J always provides a Locator to the document handler</td></tr>
</table>
<anchor name="normalize-text"/>
<p>http://xml.org/sax/features/normalize-text</p>
<table>
<tr><th>True:</th> <td>Ensure that all consecutive text is returned
in a single callback to the DocumentHandler
characters method.</td></tr>
<tr><th>False:</th> <td>Explicitly allow the parser to split
consecutive text into more than one callback
(but it still may not do so).</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Note:</th> <td>Xerces-J currently does not support allowing
consecutive text to be buffered and returned
in a single callback to the DocumentHandler
characters method.</td></tr>
</table>
-->
<anchor name='namespace-prefixes'/>
<p>http://xml.org/sax/features/namespace-prefixes</p>
<table>
<tr><th>True:</th> <td>Report the original prefixed names and attributes used for Namespace declarations.</td></tr>
<tr><th>False:</th> <td>Do not report attributes used for Namespace declarations, and optionally do not report original prefixed names.</td></tr>
<tr><th>Default:</th> <td>true</td></tr>
<tr><th>Access:</th> <td>(parsing) read-only; (not parsing) read/write</td></tr>
</table>
<anchor name='string-interning'/>
<p>http://xml.org/sax/features/string-interning</p>
<table>
<tr><th>True:</th> <td>All element names, prefixes, attribute names, Namespace URIs, and local names are internalized using java.lang.String.intern.</td></tr>
<tr><th>False:</th> <td>Names are not necessarily internalized.</td></tr>
<tr><th>Default:</th> <td>false</td></tr>
<tr><th>Access:</th> <td>(parsing) read-only; (not parsing) read/write</td></tr>
<tr><th>Note:</th> <td>Xerces-J does not support interning all strings using the
String.intern() method because Xerces-J does its own intern
optimizations for String objects.</td></tr>
</table>
</s2>
</s1>