[XMLSCHEMA-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: [XML Schema 1.1] I need an example that illustrates the usefulness of xs:error

From: Mukul Gandhi <gandhi.mukul@gmail.com>
Date: Wed, 22 Jul 2009 14:14:35 +0530
Message-ID: <7870f82e0907220144r6b924072l1e9b294dbc3661b1@mail.gmail.com>
To: "Costello, Roger L." <costello@mitre.org>
Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Re: [XML Schema 1.1] I need an example that illustrates the  	usefulness of xs:error
Hi Roger,
   It's said in the XML Schema 1.1, spec that xs:error is mainly
useful in "conditional type alternative" (CTA) definitions.

As far as I know, xs:error is a special type which is present
implicity in all 1.1 Schemas. If the xs:error type get's applied to
anything (like, element or attribute), that component becomes invalid.

So, for the above CTA definition, if the 3rd XPath test succeeds, the
element is invalid for such data.

I think, having something like xs:error is neccessary for type
alternatives. Because, we must be able to say, that for what
condition, an element should be invalid.

The attribute definition, for "kind" which you have defined, describes
how "kind" should be represented. But it doesn't say, that for what
values, of "kind" the "Publication" element should have which type
(which is possible with CTA).

On Wed, Jul 22, 2009 at 1:26 AM, Costello, Roger L.<costello@mitre.org> wrote:
>
> Hi Folks,
>
> Consider this usage of xs:error:
>
> <xs:element name="Publication" type="PublicationType">
>     <xs:alternative test="@kind eq 'magazine'" type="MagazineType" />
>     <xs:alternative test="@kind eq 'book'" type="BookType" />
>     <xs:alternative test="(@kind ne 'book') and (@kind ne 'magazine')"
>                     type="xs:error" />
> </xs:element>
>
> It says that if an instance document has a Publication element with a kind attribute not equal to 'book' or 'magazine' then throw an error.
>
> But that doesn't illustrate the usefulness of xs:error because the same functionality can be accomplished by simply constraining @kind:
>
> <attribute name="kind">
>    <simpleType>
>        <restriction base="string">
>            <enumeration value="book" />
>            <enumeration value="magazine" />
>        </restriction>
>    </simpleType>
> </attribute>
>
> Can you provide an example that illustrates the usefulness of xs:error?
>
> /Roger


-- 
Regards,
Mukul Gandhi
Received on Wednesday, 22 July 2009 08:45:32 GMT

Subscribe to the Stylus Scoop newsletter for helpful XML tips and tutorials.
Email
First Name
Last Name
Company

Download Stylus Studio 6 XML Enterprise Edition

Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.