- From: Sandra Martinez <sandra.martinez@nist.gov>
- Date: Mon, 07 Aug 2006 10:18:02 -0400
- To: George Cristian Bina <george@oxygenxml.com>
- Cc: Sandra Martinez <sandra.martinez@nist.gov>, xmlschema-dev@w3.org
Thank you!!! very much! I will try this approach. Sandra At 09:49 AM 8/7/2006, George Cristian Bina wrote: >Hi Sandra, > >This is not supported by XML Schema. What you can do is to define a more >relaxed content model (for instance a zero or more choice of all the >possible elements) and add Schematron embedded rules to check the >occurrences constraints for each child element. > >You can find an example schema below. This allows any number of BBB and >CCC elements to be interleaved with zero or one EEE elements and with one >or more DDD elements. > ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <xsd:element name="AAA"> > <xsd:annotation> > <xsd:appinfo> > <pattern xmlns="http://www.ascc.net/xml/schematron" > name="testOccurences"> > <rule context="AAA"> > <assert test="count(DDD)>0">DDD should appear one or more > times</assert> > <assert test="count(EEE)<2">EEE should appear at most > once</assert> > </rule> > </pattern> > </xsd:appinfo> > </xsd:annotation> > <xsd:complexType mixed="false"> > <xsd:choice minOccurs="0" maxOccurs="unbounded"> > <xsd:element name="BBB" type="xsd:string"/> > <xsd:element name="CCC" type="xsd:string"/> > <xsd:element name="DDD" type="xsd:string"/> > <xsd:element name="EEE" type="xsd:string"/> > </xsd:choice> > </xsd:complexType> > </xsd:element> ></xsd:schema> > >Best Regards, >George >--------------------------------------------------------------------- >George Cristian Bina ><oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger >http://www.oxygenxml.com > > >Sandra Martinez wrote: >>Could someone provide any ideas or work-around on the following issue: >>I am trying to design a Xschema that allows an unordered list of elements >>where some of the elements are unbounded, have occurrences of 0 or 1, or >>1 to unbounded. Based on the XSchema constraint that <xsd:all> does not >>allowed 0..unbounded elements, I decided to used the following >>work-around which works for an unordered list of unbounded elements but >>it does not work for the other two cases. The question is: How can I >>modified this XSxhema to allow an additional element child <AAA> whose >>occurrence is 0 or 1 and that could also be placed in any order >>(unordered) and also allow for an additional elemen <DDD> whose occurance >>is one to unbounded and that could also be placed in any order (unordered): >><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> >> <xsd:element name="AAA"> >> <xsd:complexType mixed="false"> >> <xsd:sequence minOccurs="0" >> maxOccurs="unbounded"> >> <xsd:element name="BBB" >> type="xsd:string" minOccurs="0"/> >> <xsd:element name="CCC" >> type="xsd:string" minOccurs="0"/> >> </xsd:sequence> >> </xsd:complexType> >> </xsd:element> >></xsd:schema> >> >> valid XML instance 1: >><AAA> >> <BBB>222</BBB> >> <CCC>ZZZ</CCC> >></AAA> >>valid XML instance 2: >><AAA> >> <CCC>ZZZ</CCC> >> <BBB>222</BBB> >></AAA> >>valid XML instance 3: >><AAA> >> <BBB>222</BBB> >> <CCC>ZZZ</CCC> >> <BBB>222</BBB> >></AAA> >>valid XML instance 4: >><AAA> >> <BBB>222</BBB> >></AAA> >> >>Thank you in advanced, >>Sandra >> >>Sandra I. Martinez >>National Institute of Standards and Technology >>100 Bureau Drive, Stop 8970, >>Gaithersburg, Md. 20899 >>(301) 975-3579 >>sandra.martinez@nist.gov >> Sandra I. Martinez National Institute of Standards and Technology 100 Bureau Drive, Stop 8970, Gaithersburg, Md. 20899 (301) 975-3579 sandra.martinez@nist.gov
Received on Monday, 7 August 2006 23:39:35 UTC