STC and Xerces
Arnold Rots
arots at head.cfa.harvard.edu
Tue Jan 18 14:15:30 PST 2005
Ray,
Thank you for your detective work.
Actually, I had (or thought I had) validated the schemata against
Xerces, using the DecisionSoft web service - except, I hadn't fed it a
document but used their schema-only validation service.
Validating with a document yields the same errors you find; btw, I put
the five examples on my webpage.
I tried something along the lines of the GML work-around, but I don't
think it will work (and I didn't manage to get it to work).
The reason is that I take the next step and assume that the rule
allows one to do math and that the validator is capable of doing so:
Simon Cox shows the work-around for:
<complexType name="basicBitContainerType">
<sequence>
<element ref="test:basicBit" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="restrictedBasicBitContainerType">
<complexContent>
<restriction base="test:basicBitContainerType">
<sequence>
<element ref="test:restrictedBasicBit" maxOccurs="unbounded"/>
</sequence>
</restriction>
</complexContent>
</complexType>
The equivalent of what I am trying to do is:
<complexType name="basicBitContainerType">
<sequence>
<element ref="test:basicBit" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="restrictedBasicBitContainerType">
<complexContent>
<restriction base="test:basicBitContainerType">
<sequence>
<element ref="test:restrictedBasicBit"/>
<element ref="test:basicBit" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</restriction>
</complexContent>
</complexType>
I.e., basicBitContainerType is required to contain at least 1 basicBit;
restrictedBasicBitContainerType contains 1 restrictedBasicBit (in
basicBit's substitution group) and may contain more basicBits.
So, the restriction really is that the one required basicBit be a
restrictedBasicBit.
Sigh...
- Arnold
Ray Plante wrote:
> Hi Arnold,
>
> I've been looking into the errors reported by Xerces on STC that feature
> the message, "The particle of the type is not a valid restriction of the
> particle of the base", and I have good news and bad news. The pattern at
> issue is one of restricting an element by replacing a subelement with a
> specific member of the subelement's substitution group.
>
> The bad news is that the pattern as you have applied it is indeed not
> allowed by the standard (which Xerces faithfully enforces), even
> though it was intended to be legal. Combing through list archives,
> this was apparently recently discovered (by Simon Cox of CSIRO, as
> best as I can tell) and is considered by those In The Know as an error
> in the XML Schema standard. As one writer put it, "it's one of those
> cases where [a parser] implementor has to choose between doing what
> the spec says and doing what it means"
> (http://lists.w3.org/Archives/Public/xmlschema-dev/2004Oct/0100.html).
> Restriction via a substitution group replacement is only allowed when
> minOccurs and maxOccurs on the subelement are both equal to 1.
>
> For the record, the problem arises from a conflict between two rules that
> must be applied for judging if this is a valid restriction:
> http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cos-particle-restrict
> (2.1) applied to the restrictions base type and
> http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#rcase-RecurseAsIfGroup
> applied to the restricted type. (Xerces' reporting of
> rcase-RecurseLax.2 and derivation-ok-restriction.5.4.2 is somewhat
> misleading.) A good discussion of the problem can be found on w3c's
> xmlschema-dev list in a thread that starts with
> http://lists.w3.org/Archives/Public/xmlschema-dev/2004Oct/0097.html.
> I believe the first mention of the problem was by Simon Cox in
> http://www.stylusstudio.com/SSDN/default.asp?action=9&read=2948&fid=23&FirstTopic=1&LastTopic=9999
> in the context of the Geography Markup Language (GML) which employs
> the same pattern.
>
> The good news is that there is a work around. This was worked out for
> GML and is described in
> http://lists.w3.org/Archives/Public/xmlschema-dev/2004Oct/0103.html.
>
> BTW, I think there are some other compliance issues that need being
> looked at. More on that later.
>
> cheers,
> Ray
>
>
--------------------------------------------------------------------------
Arnold H. Rots Chandra X-ray Science Center
Smithsonian Astrophysical Observatory tel: +1 617 496 7701
60 Garden Street, MS 67 fax: +1 617 495 7356
Cambridge, MA 02138 arots at head.cfa.harvard.edu
USA http://hea-www.harvard.edu/~arots/
--------------------------------------------------------------------------
More information about the registry
mailing list