[Home] [By Thread] [By Date] [Recent Entries]

  • To: "Xml-Dev@Lists. Xml. Org (E-mail)" <xml-dev@l...>
  • Subject: Which XML Processor is behaving correctly.
  • From: "Doug Ransom" <Doug.Ransom@p...>
  • Date: Mon, 20 Jan 2003 14:42:36 -0800
  • Thread-index: AcLA1Tqq4bI5nwEKTleWaUYgpZR/ew==
  • Thread-topic: Which XML Processor is behaving correctly.

I have one parser ("A") that loads the document inline below, and one that does not (B);

B  returns an error message "Reference to undeclared namespace prefix: 'xsl'. Error processing resource 'file:///D:/junk/foo.xml'. Line 1, Position 43 " due to the use of a namespace within an entity definition. 

<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE xsl:stylesheet
[
	<!-- Namespaces -->
	<!ENTITY  xsl "http://www.w3.org/1999/XSL/Transform">
	<!-- Match strings -->
	<!ENTITY CopyAttsAndNodes 
	"<xsl:apply-templates select='node()|@*' />">
]>
<xsl:stylesheet xmlns:xsl="&xsl;">
&CopyAttsAndNodes; 
</xsl:stylesheet>

Note the above sample is intended to be good xml, not necessarily good xslt.  I ripped it out of a working XSLT.  Note both parsers are capable of expanding internal entity references -- only when the prefix is included above does B run into problems.

I am leaning towards believing parser A behaving correctly, because the infoset is the tree created after the entity references have been expanded;  the entities in the DOCTYPE section should be namespace unaware (i.e. just text).



Doug Ransom
Interoperability Architect
Power Measurement
2195 Keating X Road
Saanichton, BC, Canada  V8M 2A5
Tel: 1-(250) 652-7100  
E-Mail: <mailto:doug.ransom@p...>
Website: <http://www.pwrm.com/>

ION(r)  smart energy everywhere(tm)


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member