[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] DTD to Scheme
Subject: RE: [xsl] DTD to Scheme From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 2 Feb 2005 08:37:11 -0000 |
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: [xsl] 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>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] DTD to Scheme, Stano Paska | Thread | Re: [xsl] DTD to Scheme, Stano Paska |
Re: [xsl] DTD to Scheme, George Cristian Bina | Date | Re: [xsl] DTD to Scheme, Stano Paska |
Month |
Keywords