SAX and Attribute value of type ENTITY ?
David Megginson
david at megginson.com
Mon Aug 17 15:10:48 BST 1998
Patrice Bonhomme writes:
> Ok, so how can i get the corresponding ENTITY value within a SAX
> application ? And i think that the example i gave was not good
> because the XML Rec says : "No External Entity References In
> Attribute Values".
>
> I said:
> ] <?xml version="1.0" ?> <!DOCTYPE foo [ <!ELEMENT foo (#PCDATA)>
> ] <!ATTLIST foo docref ENTITY #IMPLIED> <!ENTITY mydoc SYSTEM
> ] 'mydoc.xml'> ]> <foo docref="mydoc">blah</foo>
>
> If the Entity 'mydoc' was not an External entity (let's say a
> simple internal entity, <!ENTITY mydoc 'mydoc.xml'>) what should
> return the SAX driver ? 'mydoc' or 'mydoc.xml' ? Could i have
> something like this : <!ENTITY mydoc SYSTEM 'mydoc.xml' NDATA xml>
> ?
The last one is the only one that you're allowed to have -- ENTITY
attributes must contain the names of NDATA entities (no internal or
external text entities allowed).
SAX has a special handler called DTDHandler that will tell the
application about all declared NDATA entities and notations before
parsing the document element:
public interface DTDHandler
{
public void notationDecl (String name, String publicId,
String systemId);
public void unparsedEntityDecl (String name, String publicId,
String systemId, String notationName);
}
A common practice is to use these callbacks to build two hash tables
-- one for entities, and one for notations -- and then look up ENTITY
and NOTATION attributes in those tables when you are parsing within
the document element.
All the best,
David
--
David Megginson david at megginson.com
http://www.megginson.com/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list