Can someone explain why some XML Schemas include a DTD
definition similar to the following? Is this to ensure the integrity of
the schema itself?
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema
200102//EN"
"http://www.w3.org/2001/XMLSchema.dtd" [
<!ATTLIST
schema
xmlns:xenc
CDATA #FIXED "http://www.w3.org/2001/04/xmlenc#"
xmlns:ds
CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#"
>
<!ENTITY
xenc 'http://www.w3.org/2001/04/xmlenc#'>
<!ENTITY
% p ''>
<!ENTITY
% s ''>
]>
The issue for us is that when validating the schema
containing this declaration, the validating software (VS.NET in this case)
downloads the XMLSchema.dtd and if the validating computer doesn’t have
access to this URL fails. Given that an XML Schema parser is a software
implementation of XMLSchema itself isn’t this superfluous?
What is the best practice in a situation like this?
Should I have a local copy of the dtd and change the schema?
Thanks for any enlightenment here.