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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Why does this work? Parameter entity references and namespaces

[ Lists Home | Date Index | Thread Index ]
  • From: Elliotte Rusty Harold <elharo@metalab.unc.edu>
  • To: xml-dev <xml-dev@xml.org>
  • 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@metalab.unc.edu | 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@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************




 

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

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