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

Reply via email to