- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 07 Jul 2001 15:05:32 +0100
- To: Eddie Robertsson <eddie@allette.com.au>
- Cc: jane cho <chojane@keris.or.kr>, xmlschema-dev@w3.org
Eddie Robertsson <eddie@allette.com.au> writes: <snip/> > "When an XML processor recognizes a reference to a parsed entity, in > order to validate the document, the processor must include its > replacement text. If the entity is external, and the processor is > not attempting to validate the XML document, the processor may, but > need not, include the entity's replacement text. If a > non-validating processor does not include the replacement text, it > must inform the application that it recognized, but did not read, > the entity." > Since both XSV and XML Spy validate this without any errors I guess > the XML processor they're using resolves the external entity without > actually doing any validation. Correct? Correct for XSV. > On the other hand if I run this with MSXML4 I will get an error > because the external entity is only resolved if DTD validation is > used and if DTD validation is used I will get errors because the DTD > dosn't contain any element declarations. So, in conslusion, if I > want to be able to use external entities in this way together with > XML Schema that should work on all processors then the DTD must > contain all the element/attribute declarations. > In my example this would be: > > physicaladdress.xml > -------------------- > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE PhysicalAddress [ > <!ENTITY street SYSTEM "street.xml"> > <!ELEMENT PhysicalAddress (Street, State, Country)> > <!ATTLIST PhysicalAddress xmlns:xsi CDATA #IMPLIED > xsi:noNamespaceSchemaLocation CDATA > #IMPLIED> > <!ELEMENT Street (#PCDATA)> > <!ELEMENT State (#PCDATA)> > <!ELEMENT Country (#PCDATA)> > ]> > <PhysicalAddress xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:noNamespaceSchemaLocation="PhysicalAddress.xsd"> > &street; > <State>NSW</State> > <Country>Australia</Country> > </PhysicalAddress> > > Is this a correct understanding on my part or have I missed something? I think so. It was certainly intentional on my and Richard's part that XSV does _not_ validate the instance, since the REC does _not_ require validated infosets. An invalid document does _have_ an infoset, whereas an ill-formed one does not. I note you could just use the so-called 'Waterloo' DTD -- one which uses ANY for the model for all the elements. ht > [1] http://www.w3.org/TR/2000/REC-xml-20001006#include-if-valid -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Saturday, 7 July 2001 10:05:32 UTC