[Home] [By Thread] [By Date] [Recent Entries]
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@r...] Sent: Monday, January 28, 2002 2:50 PM To: Banerjee, Saurabh Cc: 'xml-dev@l...' Subject: Re: 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@r...> 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_
|

Cart



