[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Query regarding attribute grouping in XML Schema
Hi Sabina, > I'm not able to describe this constraint using an > annotation in a way in which it would be validated by > a parser. Could you please give an example for the > same? I would also like to know if it will be treated > as documentation or would it be validated against by > the parser? What James meant (I think?) by using the annotaitons in XML Schema is to include embedded Schematron rules within the xs:appinfo element of your schema. For your example this could for example look like: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Address"> <xs:annotation> <xs:appinfo> <pattern name="Both attributes" xmlns="http://www.ascc.net/xml/schematron"> <rule context="Address[@streetname | @doorno]"> <assert test="@doorno">If you have a streetname attribute you must have a doornr attribute.</assert> <assert test="@streetname">If you have a doornr attribute you must have a streetname attribute.</assert> </rule> </pattern> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:attribute name="doorno" type="xs:string"/> <xs:attribute name="streetname" type="xs:string"/> </xs:complexType> </xs:element> </xs:schema> Note, that these constraints can't be validated using a normal XML Schema validator so you would have to: 1) Get the free Schematron Validator from Topologi [1] 2) Using an API you can chain together different XSLT Stylesheets to first extract the Schematron information from the XML Schema and then run a normal Schematron Validation). For more info see the Schematron [2] and extending XML Schemas [3]. Cheers, /Eddie [1] www.topologi.com [2] http://www.ascc.net/xml/resource/schematron/ [3] http://www.xfront.com/BestPracticesHomepage.html (see Extending XML Schemas) > > > regards, > Sabina > > --- James Clark <jjc@j...> wrote: > > > > > > <element name="ADDRESS"> > > > > <optional> > > > > <attribute name="doorno"/> > > > > <attribute name="streetname"/> > > > > </optional> > > > > </element> > > > > > > I have no experience in RELAX-NG but this look > > like a good and simple way > > of > > > specifying the above constaint. But if this is how > > you specify that an > > > element should either have no attributes or both > > then how would you > > specify > > > that element ADDRESS can optionally have > > attributes doorno and streetname > > but > > > without the connection between the attributes? > > > Would that be something like: > > > > > > <element name="ADDRESS"> > > > <optional> > > > <attribute name="doorno"/> > > > </optional> > > > <optional> > > > <attribute name="streetname"/> > > > </optional> > > > </element> > > > > > > or? > > > > It would be exactly that. > > > > James > > > > > > > > > ----------------------------------------------------------------- > > The xml-dev list is sponsored by XML.org > > <http://www.xml.org>, an > > initiative of OASIS <http://www.oasis-open.org> > > > > The list archives are at > > http://lists.xml.org/archives/xml-dev/ > > > > To subscribe or unsubscribe from this elist use the > > subscription > > manager: <http://lists.xml.org/ob/adm.pl> > > __________________________________________________ > Do You Yahoo!? > Listen to your Yahoo! Mail messages from any phone. > http://phone.yahoo.com > > ----------------------------------------------------------------- > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an > initiative of OASIS <http://www.oasis-open.org> > > The list archives are at http://lists.xml.org/archives/xml-dev/ > > To subscribe or unsubscribe from this elist use the subscription > manager: <http://lists.xml.org/ob/adm.pl>
|
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
|