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

  • From: David Megginson <david@m...>
  • To: "XML Developers' List" <xml-dev@i...>
  • Date: Tue, 14 Jul 1998 21:10:53 -0400

Steve Harris writes:

 > I'm working out a small DTD by inlining it with some sample data. It
 > uses a single internal parameter entity and refers to the entity twice
 > in the DTD. Emacs's 'psgml' seems to validate and do all the
 > substitutions as expected. If I run the file through expat, though, it
 > reports the following error:
 > 	illegal parameter entity reference

You've run up against a somewhat obscure constraint from section 2.8
of the XML 1.0 Recommendation:

  Well-Formedness Constraint: PEs in Internal Subset

  In the internal DTD subset, parameter-entity references can occur
  only where markup declarations can occur, not within markup
  declarations. (This does not apply to references that occur in
  external parameter entities or to the external subset.)

  Source: http://www.w3.org/TR/1998/REC-xml-19980210#sec-prolog-dtd

As a result, the following is legal in an _external_ DTD subset, but
not in an internal one:

  <!ENTITY % my-atts "id ID #REQUIRED
                      role CDATA #IMPLIED">

  <!ELEMENT foo (#PCDATA)>
  <!ATTLIST foo
    %my-atts;>

PSGML doesn't catch this one yet.


All the best,


David

-- 
David Megginson                 david@m...
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@i... the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)


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