Re: XML Validity and DTD dependance

/ Rich Salz <rsalz@datapower.com> was heard to say:
| No.  I want a term for "the instance document meets every single
| validity constraint from the XML spec, except that no DTD is present."

Is the following document valid or not?

  <foo idref="bar"/>

If there's a DTD then you can check the type of the idref attribute
and if its type is IDREF then the document is not valid. If there's
no DTD, then the attribute idref is untyped.

To stick with the use case of ID uniqueness, if there's no DTD, how
do you expect a processor to know which attributes are IDs?

I'm inclined to agree with Richard and John, a document without a DTD
can only be well-formed. There is no additional information available
with which a processor could attempt to test constraints.

| Then the XML spec needs to be revised to make DTD's namespace
| aware, don'tcha think?  Or do you really think that the only way
| realistic way to have valid XML documents -- or hack, let me show
| my true colors and say "XML messages -- is to not use namespaces?
| (My use of the world /realistic/ rules out the "entity hacks.")

The way you check the validity of messages is by validating them
against a schema using your favorite schema language.

SOAP messages aren't strictly speaking XML documents, they're a subset
of XML, and that subset is unable to express any notion of validity
because it is forbidden from associating any set of XML declarations
with the instance document.

                                        Be seeing you,
                                          norm

-- 
Norman.Walsh@Sun.COM / XML Standards Architect / Sun Microsystems, Inc.
NOTICE: This email message is for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
Any unauthorized review, use, disclosure or distribution is prohibited.
If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

Received on Monday, 25 April 2005 16:00:26 UTC