namespace of attributes?

Ronald Bourret rbourret at
Mon Sep 13 09:55:08 BST 1999

Joe Lapp wrote:

> <!ELEMENT e1 (e3)*>
> <!ATTLIST e1 xmlns "urn:namespace1">
> <!ELEMENT e2 (e3)*>
> <!ATTLIST e2 xmlns "urn:namespace2">
> To which namespace does e3 belong?

You've actually got two e3's here.  An e3 nested directly beneath e1 is in 
namespace1 and an e3 nested directly beneath e2 is in namespace2, as can be 
seen in the following instances (default attribute values shown for 

   <e1 xmlns="urn:namespace1">
      <e3/> <!-- in namespace1 -->

   <e2 xmlns="urn:namespace2">
      <e3/> <!-- in namespace2 -->

Mark D. Anderson wrote:

> can i do this in a dtd?
> <!ATTLIST e2
>      a (1|2) 1
>      "urn:namespace2:a" (3|4) 3>
> if i can't, then how can i declare the two supposedly different "a"
> attributes shown in the XML Names spec example:
> <x xmlns:n1=""
>    xmlns="" >
>   <good a="1"     b="2" />
>   <good a="1"     n1:a="2" />
> </x>"

I'm afraid your ATTLIST syntax still doesn't make sense -- it's not legal 
syntax.  In answer to your second question, here's the ATTLIST for the 
element type good (assuming that all attributes are #IMPLIED CDATA 

   <!ATTLIST good
      n1:a CDATA #IMPLIED>

Note that this is subject to all the usual problems of using prefixes in 
DTDs -- in this case, that the prefix n1 will point to the URI 
"" at the time <good> occurs. As Joe says, it's probably 
best not to mix namespaces and DTDs.

-- Ron Bourret

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list