|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: DTD to Scheme
Subject: Re: DTD to Scheme
From: Stano Paska <paska@xxxxxxx>
Date: Wed, 02 Feb 2005 09:43:30 +0100
|
Yes, yes, I know.
But this mailing list was the first shot from google and I needed that
really quick.
Thanks to all, guys.
Stano.
Michael Kay wrote:
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>
--
Stanislav Paka
programator, www skupina
KIOS s.r.o.
tel: 033 / 794 00 18

|
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
| RSS 2.0 |
|
| Atom 0.3 |
|
|