[
Lists Home |
Date Index |
Thread Index
]
>Subscribe by email to xmlschema-dev-request@w3.org
Well, as long as we've got the thread going here...
>Lax processing is recursive, so the non-beta
>children of alpha will be laxly validated as well, unto the n-th
>generation.
Then why was the word "children" used in the quoted passage ("...or any
items among its [children]")instead of "descendants"?
My experience seems to bear out what Dare says. Here's my schema:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="alpha">
<xs:complexType>
<xs:sequence>
<xs:any processContents="lax" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="beta">
<xs:complexType>
<xs:sequence>
<xs:element name="c" type="xs:string"/>
<xs:element name="d" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Xerces C++ reports errors for the third beta element below, but not the
second:
<alpha xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="alpha.xsd">
<beta><c/><d/></beta> <!-- matches beta content model -->
<e/>
<f>
<beta><x/></beta> <!-- doesn't, but grandchild of alpha -->
</f>
<beta><y/></beta> <!-- doesn't -->
</alpha>
In the absence of the kinds of declarations described by Jeni for other
potential parents of beta, descendants of the processContents="lax"
element's children seem to be processed as if those children had a
processContents value of "skip". Otherwise, the x element in the second beta
element would have triggered an error, right?
My basic goal is this: to write a schema that accepts everything in a
well-formed document except those elements specifically declared in that
schema, wherever they may turn up in the document. It's not looking
encouraging in XSD, although I have managed it in RNG.
Bob
|