[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AND (Another Namespace Dilemma) ... DTD Validation
- From: Richard Tobin <richard@cogsci.ed.ac.uk>
- To: c.nentwich@cs.ucl.ac.uk
- 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