[XML-SIG] Problem using schema instead of DTD

Mike Brown mike at skew.org
Fri Jan 14 18:19:38 CET 2005


Tim van Erven wrote:
> And the output of my program looks like this, which won't validate:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE ltp> 
> <ltp xmlns="http://www.example.org/info"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.example.org/info someschema.xsd">
>  
> <text>This is some modified sample text.</text>
> </ltp>
> 
> Does anyone know how to get rid of the !DOCTYPE line? Is that the right
> thing to do anyway?
> 
> I'm rather new to xml, so any conceptual corrections would be much
> appreciated as well.

What are you parsing your generated XML with, and what is the error you are 
getting? It could be happening for a couple of reasons. Whatever you are using 
to do the parsing and validation of that XML may be assuming (incorrectly) 
that if it sees a DOCTYPE, it has to do DTD-based validation. Whether or not 
validation is being done, and what kind of validation, is up to the user of 
the tool doing the parsing. (Note: Pointing to or directly providing schematic info is just one of several 
capabilities of a the document type declaration; it is also a source of entity 
and default attribute declarations, and is normally checked for those 
regardless of whether validation is being done.)

Another possibility is that the tool you are using does not recognize the 
minimal DOCTYPE declaration that is being added to your document. Such a 
declaration serves no real purpose, but is permitted to exist by the XML spec. 
It is an often-overlooked 'feature' of XML though; some parsers may reject it 
out of ignorance.

-Mike


More information about the XML-SIG mailing list