OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: Does DTD validation work with namespaces?

[ Lists Home | Date Index | Thread Index ]
  • From: Norman Walsh <ndw@nwalsh.com>
  • To: xml-dev@lists.xml.org
  • Date: Wed, 09 Aug 2000 14:49:04 -0400

/ Wayne Steele <xmlmaster@hotmail.com> was heard to say:
| I think you are mistaken.
| The kind of mixing of DTDs that you're discussing is perfectly legal and
| acceptable with XML 1.0.
| 
| If I declare
|    <!ELEMENT foo (#PCDATA)* >
|    <!ELEMENT FooList ( foo )+ >
| 
|    There is _NO_ constraint that foo elements only appear inside FooList
| elements.

True, but it is a constraint that only foo elements occur inside a FooList.

|    I could quite legally have <!DOCTYPE foo ... > in my document.
|    I could also have an internal subset, that declares
|       <!ELEMENT FooBarList ( foo | bar )* >
|    and then mix foo elements side-by-side with bar elements.

Nope, you couldn't. That would violate the "Unique Element Type
Declaration" validity constraint. You could get the desired effect
with appropriate parameter entities, though, so nevermind :-)

| As long as names don't clash, there should be no problem.
| If something in dtd1 had a content model on "ANY", I can now take any element
| I choose from dtd1 or dtd2, and stick it in there.

Right, but explicitly because you used the content model ANY in dtd1.
If dtd1 declares

  <!ELEMENT FooList ( foo )+ >

and dtd2 declares my:foo, you *cannot* say:

  <FooList><my:foo/></FooList>

| DTD Validation is intended to allow documents to specify the model and
| constraints they adhere to, not to force documents to conform to some outside
| spec.

Those are two sides of the same coin, aren't they? A document conforms
to the constraints that it claims to adhere to if and only if it
conforms to the DTD (outside spec) that defines the constraints.

|    2. XML Documents can always override or add their DTDs with an internal
| subset.

In practice, this requires that the external subset DTD be defined with
appropriate parameter entities.

|    3. A DTD cannot specify what the "root" or Document Element, or "DOCTYPE"
| should be. An XML document can declare itself to be any element that is
| defined in the DTD.

Yeah, but I don't see how that's relevant.

                                        Be seeing you,
                                          norm

-- 
Norman.Walsh@East.Sun.COM | Great men too make mistakes, and many among
XML Technology Center     | them do it so often that one is almost
Sun Microsystems, Inc.    | tempted to call them little
                          | men.--Lichtenberg




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS