[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
|