DTD Structures (Was: XMLDSIG Interop in connection with 48th IETF)

Hi Owen,

I created those Parameter Entities on the suggestion that it would make it
easier for others to define extension content models. (ANY in an XML DTD
means only those elements declared in that DTD, so we'd need easy ways for
folks to plug in acceptable content for Object, KeyInfo, etc). I implemented
the method suggested by Martin [1].

However, you're correct in noting that parameter entities can't be used that
way in an internal subset. [2,3]. A bit of a toss-up... We could provide a
modularized and internal subset DTD though I'm REALLY hesitant to include
another place where I have to synch changes! Given that the DTD isn't
expected to be deployed out-of-the box for enveloped/enveloping Signatures,
I think I'd opt for the modular approach that the application designer can
tweak as approriate.
__


[1] http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000AprJun/0065.html
[2] http://www.w3.org/TR/1998/REC-xml-19980210.html#wfc-PEinInternalSubset
[3] http://www.xml.com/axml/notes/PEsubsets.html
Parameter Entity Reference Restrictions
It took a lot of work to get to this policy. The idea is that although PEs
are useful (essential, even) for DTD construction and maintenance, that is
the only place they are useful, and they shouldn't complicate the lives of
non-validating processors. So to achieve this, in the internal subset (the
part between the [ and ] in the doctype declaration), you can only use PEs
at the "top level". that is to say, this is legal in the internal subset:

<!ENTITY % e1 "<!ELEMENT e1 ANY>"> %e1;

while this is not (but would be in the external subset):

<!ENTITY % e2 "(e3|e4)">
<!ELEMENT e2 %e2;>


_________________________________________________________
Joseph Reagle Jr.   
W3C Policy Analyst                mailto:reagle@w3.org
IETF/W3C XML-Signature Co-Chair   http://www.w3.org/People/Reagle/

Received on Wednesday, 19 July 2000 17:01:19 UTC