|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Schema question (corrected)
Brian McAndrews wrote:
>
> given the following XML:
>
> <Store numberOfProducts=3>
> <Inventory>
> <Product>Baseballs</Product>
> <Product>Footballs</Product>
> <Product>Soccerballs</Product>
> </Inventory>
> </Store>
>
> Let produce a schema:
>
> <xsd:complexType name="Inventory">
> <xsd:element name="Product" type="xsd:string"/>
> </xsd:complexType>
>
> My question is, (how) can I specify that the number of "Product" be
equal to
> the attribute "numberOfProducts" in the Store element?
You can use the Schematron open source schema language, which is
specifically aimed for the 1001 non-regular constraints that real data
requires.
Off the top of my head (and correct for prefixes), the appropriate
schema would look something like this:
<sch:schema xmlns:sch="http://www.ascc.net/xml/schematron">
<sch:pattern>
<sch:rule context="Inventory[parent::Store]">
<sch:assert test="parent::*/@numberOfProducts = count(Product)"
>The of number "Product" elements in an "Inventory" element should
be equal to the attribute "numberOfProducts" in the Store
element.</sch:assert>
</sch:rule>
</sch:pattern>
</sch:schema>
Schematron home page at
http://www.ascc.net/xml/resource/schematron/schematron.html
Rick Jelliffe
***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@x...&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








