|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: DTD to Scheme
You're on the wrong list for XML Schema questions - the right place is xmlschema-dev@xxxxxxx But the answer is that you can express this model without violating UPA. In shorthand, you write it as ((waiting,passing?)|passing) Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Stano Paska [mailto:paska@xxxxxxx] > Sent: 02 February 2005 05:23 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: DTD to Scheme > > Hi, > > I need rewrite som DTD into XML Schema. > I have problem with one part. > In element "item" there may be three combinations of waiting/passing > elements: > one waiting, one passing, or both. > > In DTD it is easy and it works: > <!ELEMENT item (risid,(waiting|passing|(waiting,passing)))> > > In Scheme it is easy, but it does not work: > <xsd:element name="item"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="risid"/> > <xsd:choice> > <xsd:element ref="waiting"/> > <xsd:element ref="passing"/> > <xsd:sequence> > <xsd:element ref="waiting"/> > <xsd:element ref="passing"/> > </xsd:sequence> > </xsd:choice> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > > :0,0: Complex type 'C0' violates the Unique Particle > Attribution rule in > its components 'waiting' and 'waiting' > > It is possible to write corresponding schema? > > Thanks for your solutions. > > Stano. > > Attachments: > ----------------- > test.xml > ----------------- > <?xml version="1.0" encoding="utf-8"?> > <!DOCTYPE result SYSTEM "d:\praca\lucia\klient\dtd.dtd"> > <result> > <item> > <risid>DE307001001223</risid> > <waiting> > <average>13.99</average> > <deviation>6.27</deviation> > <count>4</count> > </waiting> > <passing> > <average>13.99</average> > <deviation>6.27</deviation> > <count>4</count> > </passing> > </item> > </result> > > ---------------- > DTD > ---------------- > <?xml version="1.0" encoding="UTF-8"?> > > <!ELEMENT result (item+|error)> > > <!ELEMENT error (#PCDATA)> > <!ELEMENT item (risid,(waiting|passing|(waiting,passing)))> > > <!ELEMENT risid (#PCDATA)> > <!ELEMENT waiting (average,deviation,count)> > <!ELEMENT passing (average,deviation,count)> > > <!ELEMENT average (#PCDATA)> > <!ELEMENT deviation (#PCDATA)> > <!ELEMENT count (#PCDATA)> > > ----------------- > Scheme > ----------------- > <?xml version="1.0" encoding="UTF-8"?> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <!-- simple elements --> > <xsd:element name="risid" type="xsd:string"/> > <xsd:element name="average" type="xsd:decimal"/> > <xsd:element name="deviation" type="xsd:decimal"/> > <xsd:element name="count" type="xsd:nonNegativeInteger"/> > <xsd:element name="error" type="xsd:string"/> > > <!-- complex elements --> > <xsd:complexType name="record"> > <xsd:sequence> > <xsd:element ref="average"/> > <xsd:element ref="deviation"/> > <xsd:element ref="count"/> > </xsd:sequence> > </xsd:complexType> > <xsd:element name="waiting" type="record"/> > <xsd:element name="passing" type="record"/> > > <xsd:element name="item"> > <xsd:complexType> > <xsd:sequence> > <xsd:element ref="risid"/> > <xsd:choice> > <xsd:element ref="waiting"/> > <xsd:element ref="passing"/> > <xsd:sequence> > <xsd:element > ref="waiting"/> > <xsd:element > ref="passing"/> > </xsd:sequence> > </xsd:choice> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > > <xsd:element name="result"> > <xsd:complexType> > <xsd:choice> > <xsd:element ref="error"/> > <xsd:element ref="item" > maxOccurs="unbounded"/> > </xsd:choice> > </xsd:complexType> > </xsd:element> > > </xsd:schema>
|
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
|

Cart








