[
Lists Home |
Date Index |
Thread Index
]
- To: "Xml-Dev@Lists. Xml. Org (E-mail)" <xml-dev@lists.xml.org>
- Subject: Which XML Processor is behaving correctly.
- From: "Doug Ransom" <Doug.Ransom@pwrm.com>
- 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@pwrm.com>
Website: <http://www.pwrm.com/>
ION(r) smart energy everywhere(tm)
|