Re: XSchema question

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)&lt;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