OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] converting XML Schema to DTD

[ Lists Home | Date Index | Thread Index ]

You could do this:

<!ELEMENT fname (#PCDATA)>
<!ELEMENT lname (#PCDATA)>
<!ELEMENT personnel (lname?, fname?) | (fname?, lname?) >

except it's non-deterministic.

So use this instead:

<!ELEMENT fname (#PCDATA)>
<!ELEMENT lname (#PCDATA)>
<!ELEMENT personnel (lname, fname?) | (fname, lname?)? >

This solution doesn't scale beyond a handful of subelements.
If you had 20 subelements, I would give up on full order-independant 
validation with DTDs, and use something like:

<!ELEMENT fname (#PCDATA)>
<!ELEMENT lname (#PCDATA)>
<!ELEMENT personnel (lname | fname)* >


-Wayne Steele


>From: "Banerjee, Saurabh" <sabanerjee@answerthink.com>
>To: "'John Cowan'" <jcowan@reutershealth.com>,        "Banerjee, Saurabh"  
><sabanerjee@answerthink.com>
>CC: "'xml-dev@lists.xml.org'" <xml-dev@lists.xml.org>
>Subject: RE: [xml-dev] converting XML Schema to DTD
>Date: Mon, 28 Jan 2002 15:23:44 -0500
>
>Thanks John! Actually the question was what is the equivalent of the
>following schema definition in DTD terms?
>
>SCHEMA:
>
><xs:element name="personnel">
><xs:complexType>
><xs:all>
>	<xs:element name="lname" minOccurs="0"/>
>	<xs:element name="fname" minOccurs="0"/>
></xs:all>
></xs:complexType>
>
>
>XML Spy created the following DTD:
><!ELEMENT fname (#PCDATA)>
><!ELEMENT lname (#PCDATA)>
><!ELEMENT personnel (lname?, fname?)>
>
>This is not correct because the DTD will not validate the following:
><personnel>
><fname>George</fname>
><lname>Bush<lname>
></personnel>
>
>The schema will validate both
>
><personnel>
><fname>George</fname>
><lname>Bush<lname>
></personnel>
>
>and
><personnel>
><lname>Bush<lname>
><fname>George</fname>
></personnel>
>
>
>
>-----Original Message-----
>From: John Cowan [mailto:jcowan@reutershealth.com]
>Sent: Monday, January 28, 2002 2:50 PM
>To: Banerjee, Saurabh
>Cc: 'xml-dev@lists.xml.org'
>Subject: Re: [xml-dev] converting XML Schema to DTD
>
>
>Banerjee, Saurabh wrote:
>
> > this is not correct because the XML below is INVALID with the DTD but
>valid
> > with the SCHEMA.
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!--Sample XML file generated by XML Spy v4.2 U 
>(http://www.xmlspy.com)-->
> > <personnel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > xsi:noNamespaceSchemaLocation="D:\dtd2xs\try.xsd">
> > 	<fname>String1</fname>
> > 	<lname>String2</lname>
> > </personnel>
>
>
>That is because DTDs do not know about namespace prefixes,
>
>or the magic properties of xsi:* to Schema.  You must declare these
>attributes in your DTD by adding the following (at minimum):
>
><!ATTLIST personnel
>	xmlns:xsi CDATA #IMPLIED
>	xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
>
>--
>John Cowan <jcowan@reutershealth.com>     http://www.reutershealth.com
>I amar prestar aen, han mathon ne nen,    http://www.ccil.org/~cowan
>han mathon ne chae, a han noston ne 'wilith.  --Galadriel, _LOTR:FOTR_
>
>-----------------------------------------------------------------
>The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
>initiative of OASIS <http://www.oasis-open.org>
>
>The list archives are at http://lists.xml.org/archives/xml-dev/
>
>To subscribe or unsubscribe from this list use the subscription
>manager: <http://lists.xml.org/ob/adm.pl>
>


_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS