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

  • From: Richard Tobin <richard@c...>
  • To: c.nentwich@c...
  • Date: Fri, 10 Aug 2001 11:36:27 +0100 (BST)

><!ENTITY % xlinkit-namespace-prefix "xlinkit">
><!ENTITY % LinkBase "%xlinkit-namespace-prefix;:LinkBase">
[etc]

Note that you can define xlinkit-namespace-prefix in the external
subset with a default prefix, and override it in the internal
subset.

There's one other thing you need to do to make it valid, which is
to declare the xmlns:linkit attribute on the root element.

 <!ENTITY % nsattr "xmlns:%xlinkit-namespace-prefix;">
 <!ATTLIST %LinkBase; nsattr CDATA #REQUIRED>

(you might want to ues a #FIXED attribute).

Also, you'll see this doesn't work if you want to be able to use
the "default namespace", because defining xlinkit-namespace-prefix
to be the empty string will result in elements with names like
:LinkBase instead of LinkBase.  In that case, you need to make
the colon be part of the entity:

 <!ENTITY % xlinkit-namespace-prefix "xlinkit:">
 <!ENTITY % LinkBase "%xlinkit-namespace-prefix;LinkBase">

and you will need a second entity for us in the namespace attribute:

 <!ENTITY % xlinkit-namespace-suffix ":xlinkit">
 <!ENTITY % nsattr "xmlns%xlinkit-namespace-suffix;">

-- Richard

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