Subject: Re: [xsl] DTD to Scheme From: Stano Paska <paska@xxxxxxx> Date: Wed, 02 Feb 2005 09:43:30 +0100 |
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>
-- Stanislav Paka programator, www skupina KIOS s.r.o. tel: 033 / 794 00 18
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] DTD to Scheme, Michael Kay | Thread | Re: [xsl] DTD to Scheme, omprakash . v |
Re: [xsl] DTD to Scheme, Stano Paska | Date | RE: [xsl] launching Saxon 8.2 from , Pawson, David |
Month |