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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: Schema question (corrected)

[ Lists Home | Date Index | Thread Index ]
  • From: Rick JELLIFFE <ricko@geotempo.com>
  • To: xml-dev@lists.oasis-open.org
  • Date: Sat, 24 Jun 2000 18:41:52 +0800

 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@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************




 

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

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