OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] Problems with xs:redefine

[ Lists Home | Date Index | Thread Index ]

Hi,

On Thu, 2005-11-24 at 11:00 +0000, Paul Spencer wrote:
> You are correct in saying that XML Spy 2004 does not detect this error, but
> 2005 does. This (and inadequate testing) has led to at least one set of
> invalid schemas being published as a "standard".
> 
> When you use redefine, the new definitions must be legitimately derived from
> the types you are redefining. Your simple type is derived from an xs:string.
> You just need to change this to derive it from the original type.
> 
>  	<xs:redefine schemaLocation="Events_1.6.xsd">
>  		<xs:simpleType name="RecurrenceIDRangeType">
>  			<xs:restriction base="RecurrenceIDRangeType">
>  				<xs:enumeration value="ThisAndFuture"/>
>  				<xs:enumeration value="ThisAndPrior"/>
>  			</xs:restriction>
>  		</xs:simpleType>
> 
> Your complex type is not a valid restriction, and I don't think you can
> create one to do what you want.

True, the complex type restriction won't work.

If XML Schema's unique particle attribution (UPA) constraints [1] were
not built to reflect a _deterministic_ finite state automaton, then you
could define your base type as follows:

<xs:element name="a"/>
<xs:element name="b"/>

(warning: this <xs:choice> is _not_ _valid_)
<xs:choice minOccurs="0">
    <xs:element ref="a"/>
    <xs:element ref="b"/>
    <xs:sequence>
        <xs:element ref="a"/>
        <xs:element ref="b"/>
    </xs:sequence>
</xs:choice>

... removing the empty set using a restriction would only need the
minOccurs to be set to 1:

(warning: this <xs:choice> is _not_ _valid_)
<xs:choice>
    <xs:element ref="a"/>
    <xs:element ref="b"/>
    <xs:sequence>
        <xs:element ref="a"/>
        <xs:element ref="b"/>
    </xs:sequence>
</xs:choice>

This would be a valid _restriction_. But, as already mentioned, both
models violate the UPA constraints in the way that the automata,
reflecting those models, would be non-deterministic.

[1] http://www.w3.org/TR/xmlschema-1/#cos-nonambig

---
Potential bug in Saxon 8.5.1: I noticed that it does not fire an
UPA error for the above scenario; on the other hand it does fire the
error if the @ref attributes are substituted for @name attributes.
A "different/same element declaration" issue?
---

[...]

Regards,

Kasimier




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS