Hi Ilian,
This is actual an issue with Xerces-C, and not with Xalan-C. However, the
parser is correct and the DTD you are trying to process does not conform to
the namespace recommendation:
http://www.w3.org/TR/REC-xml-names/#Conformance
So, there is really nothing to do but modify the DTD. XSLT is a
namespace-aware application, so XML documents processed by XSLT must
conform to the namespaces recommendation. If this DTD is generated by a
tool, I suggest you contact the vendor of the tool. Otherwise, contact the
source of the DTD and ask them to change it, or issue a new version which
is namespace-conformant.
Dave
"Ilian Iliev"
<[EMAIL PROTECTED] To:
[email protected]
com.bg> cc: (bcc: David N
Bertoni/Cambridge/IBM)
Subject: Validating XML and
namespace prefixes
05/13/2003 01:43
AM
Hi all,
I need to transform a XML document created by an UML case tool. I have
a UML1.4 DTD file from OMG and I want to do a validation of XML file
with this DTD. Here is an excerpt from XML file
<?xml version="1.0" encoding= "ISO-8859-1"?>
<!DOCTYPE XMI SYSTEM "uml14.dtd">
<XMI xmi.version="1.1" xmlns:UML = 'href://org.omg/UML/1.3'>
<XMI.header>
<XMI.metamodel xmi.name="UML" xmi.version="1.4" />
</XMI.header>
<XMI.content>
<UML:Model>
<UML:Namespace.ownedElement>
<UML:Stereotype xmi.id = 'STID_1'
name = 'UserInput'>
</UML:Stereotype>
</UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
</XMI>
The transformation (and validation) has to be performed by calling
command-line utility Xalan.exe. The problem is that it raises the
following error:
Fatal Error at (file C:\temp\uml14.dtd, line 187, column 31): Colons are
not allowed in this name when namespaces are enabled
SAXParseException: Colons are not allowed in this name when namespaces
are enabled (C:\temp\uml14.dtd, line 187, column 31)
On the line 187 in uml14.dtd, there is a following:
<!ENTITY % UML:AggregationKind '(none|aggregate|composite)'>
If I remove UML: prefix from both DTD and XML file, validation is OK.
My questions are:
- Does Xalan support validation when there is namespace prefixes in
DTD?
- If yes, what can I do with Xalan.exe to enable it? Should I modify
code in XalanExe.cpp?
Thanks in advance,
Ilian