- From: <photinia@freediscovery.com>
- Date: Tue, 22 Nov 2005 14:56:38 -0800
- To: xmlschema-dev@w3.org
- Cc: bishop@freediscovery.com
I noticed that the item "Can I combine XML Schema and DTDs?" of "XML Schema FAQ" (http://www.schemavalid.com/faq/xml-schema.html#a) cited Prof. Thompson statement: "[Henry Thompson] DTD processing and XML Schema processing are completely independent, hence combinable: just make sure your schema processor includes a validating XML parser as its first stage." I am relatively new in XML and not sure how I can make it work in Microsoft Visual Studio .NET 2003. For example, if there is a XML file like this (horse.xml): -------------------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <pets xmlns="http://tempuri.org/horse2.xsd"> <horse name="lightening" weight="1300" birthDate="June 14, 2003"> </horse> <familyHistory>horseFamilyHistory.txt</familyHistory> <photo>myHorse.jpg</photo> </pets> ----------------------------------------------------------------------------- I can use Visual Studio to automatically generate the following XSD schema (horse.xsd): ----------------------------------------------------------------------------- <?xml version="1.0"?> <xs:schema id="NewDataSet" targetNamespace="http://tempuri.org/horse2.xsd" xmlns:mstns="http://tempuri.org/horse2.xsd" xmlns="http://tempuri.org/horse2.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="pets"> <xs:complexType> <xs:sequence> <xs:element name="familyHistory" type="xs:string" minOccurs="0" /> <xs:element name="photo" type="xs:string" minOccurs="0" /> <xs:element name="horse" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="name" form="unqualified" type="xs:string" /> <xs:attribute name="weight" form="unqualified" type="xs:string" /> <xs:attribute name="birthDate" form="unqualified" type="xs:string" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:EnforceConstraints="False"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="pets" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema> ------------------------------------------------------------------------------- Then, I can modify horse.xsd to set weight's type decimal, etc. However, since myHorse.jpg is unparsed (non-XML) data, it seems that it can be best represented using DTD's unparsed external entities. Also, horseFamilyHistory.txt is a big, external, ACSII file. Question 1: Currently, is it possible to handle both myHorse.jpg and horseFamilyHistory.txt using "pure" XSD schema? Question 2: If yes, how to do it? Question 3: If not, how to combine the XSD schema with DTD? Question 4: How to perform XML validation of the above (modified) XML using, say, C# within Microsoft Visual Studio .NET? Your kind help would be greatly appreciated. Bill
Received on Wednesday, 23 November 2005 01:07:53 UTC