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

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AND (Another Namespace Dilemma) ... DTD Validation



><!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