ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> xml-dev
xml-dev
RE: [xml-dev] converting XML Schema to DTD
by Banerjee, Saurabh other posts by this author
Jan 28 2002 8:23PM messages near this date
RE: [xml-dev] DOM Level 3 Abstract Schema and Load & Save | Re: [xml-dev] converting XML Schema to DTD
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@[...].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@[...].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> 
Thread:
Banerjee, Saurabh
John Cowan

Privacy Policy | Email Opt-out | Feedback | Syndication
© 2004 ActiveState, a division of Sophos All rights reserved