[Home] [By Thread] [By Date] [Recent Entries]

  • From: Elliotte Rusty Harold <elharo@m...>
  • To: xml-dev <xml-dev@x...>
  • Date: Sat, 11 Mar 2000 13:07:14 -0800

To allow DTDs to interoperate with namespaces, one might attempt the
following:

<!ENTITY % rd-prefix "rd">
<!ENTITY % rd-colon  ":">

<!ELEMENT %rd-prefix;%rd-colon;test (#PCDATA)>

Then you could redefine the prefixes and colons by redefining the
respective entities. However, this fails because XML parsers add an
extra space on each side of the resolved parameter entity reference so
what you really get is this:

<!ELEMENT  rd  : test (#PCDATA)>

when what you want is

<!ELEMENT  rd:test (#PCDATA)>

This behavior is described in section 4.4.8 of the XML 1.0 spec,
http://www.xml.com/axml/target.html#as-PE

However a trick I picked up from the MathML 2.0 DTD is to use double
indirection like this:

<!ENTITY % rd-prefix "rd">
<!ENTITY % rd-colon  ":">

<!ENTITY % rd-test "%rd-colon;%rd-prefix;test">

<!ELEMENT %rd-test; (#PCDATA)>

This works but for the life of me I can't see why. How come the rd-test
entity is defined as "rd:test" instead of " rd  : test"? Can anyone
justify this behavior in terms of the spec?

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo@m... | Writer/Programmer |
+-----------------------+------------------------+-------------------+ 
|               Java I/O (O'Reilly & Associates, 1999)               |
|            http://metalab.unc.edu/javafaq/books/javaio/            |
|   http://www.amazon.com/exec/obidos/ISBN=1565924851/cafeaulaitA/   |
+----------------------------------+---------------------------------+
|  Read Cafe au Lait for Java News:  http://metalab.unc.edu/javafaq/ | 
|  Read Cafe con Leche for XML News: http://metalab.unc.edu/xml/     |
+----------------------------------+---------------------------------+

***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@x...&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member