Alexi Zuo wrote:
*I am writing a schema validation tool to make the content of a XML file is
consistent with a XSD file. Although I can make it work, but I still don't
know what the following SAX2 features exactly mean.
...
*Can anybody tell me what they eactly mean, and when I should set them to
true (or false)? *
**
*1. XMLUni::fgSAX2CoreNameSpaces*
*Predefined Constant: * *fgSAX2CoreNameSpaces * *note: * *If the
validation feature is set to true, then the document must contain a grammar
that supports the use of namespaces. *
* *
*But what is a grammar that supports the use of namespaces?*
XML Schema requires namespace support to be enabled.
*2.XMLUni::fgXercesSchema*
*http://apache.org/xml/features/validation/schema * *true: * *Enable the
parser's schema support. * *false: * *Disable the parser's schema
support. *
*What does it mean by "a parser that supports schema"?*
I don't see the text "a parser that supports schema" anywhere on the page.
*3.XMLUni::fgSAX2CoreNameSpacePrefixes*
*http://xml.org/sax/features/namespace-prefixes * *true: * *Report the
original prefixed names and attributes used for Namespace declarations. *
*false: * *Do not report attributes used for Namespace declarations, and
optionally do not report original prefixed names. *
*Can anybody give me an example for this?*
When this feature is set to true, any attributes that define namespace
bindings appear in the attributes list for the element. If set to
false, they are not report as attributes, and are only reported through
startPrefixMapping() and endPrefixMapping() events. For example:
<foo xmlns:bar="http://www.bar.com" />
If this feature is set to false, the attribute list for this element
will be empty. If set to true, it will contain one attribute.
**
**
*4.XMLUni::fgXercesSchemaFullChecking
*
...
*This feature is only used to check grammar in the XSD file?*
Yes
**
*5.XMLUni::fgXercesDynamic*
*http://apache.org/xml/features/validation/dynamic * *true: * *The
parser will validate the document only if a grammar is specified. (
http://xml.org/sax/features/validation must be true). * *false: *
*Validation
is determined by the state of the
http://xml.org/sax/features/validationfeature.
* *default: * *false * *XMLUni Predefined Constant: * *fgXercesDynamic
* *see: *
*http://xml.org/sax/features/validation*<http://xerces.apache.org/xerces-c/program-sax2.html#validation>
* *
The "true" and "false" clauses seems say the same thing?
No. If dynamic validation is set to true, and validation is set to
true, validation will only occur if a grammar is found. If dynamic
validation is set to false, and validation is set to true, then
validation will always occur, possibly leading to validation errors if a
document doesn't have a grammar.
Dave