[Home] [By Thread] [By Date] [Recent Entries]
On Mon, 3 Aug 1998, John Cowan wrote: > (There is nothing official about this: it is what I glean from > reading the XML recommendation plus applying reason and common sense.) > NVP = non-validating conforming parser(s). Other capitalized terms > are used as in RFC 2119. I am in the middle of implementing all this stuff in my HXP parser right now and have been groveling through the spec sorting out many of these issues, so this is very helpfull. > 1. An NVP MUST check the document entity for well-formedness and > report any violations. Meaning, it MUST check ALL the well formedness constraints, and MAY check validity constraints. > 3. An NVP MUST process certain attribute list and entity declarations, > and use them to normalize attribute values, include the replacement > text of internal entities, and supply default attribute values. default attribute values...mmm...that is what I am coding today :-) If an attribute is REQUIRED or IMPLIED, an NVP doesn't have to touch it or deal with it at all. Otherwise an NVP must check if there is a value for an attribute and if not, include the default value. If the attribute is FIXED, an NVP is not required to check if the instance value matches the declared value because that is a validity constraint. This means that if you supply an instance value for a FIXED attribute, where that instance differs from the declared fixed value, that an NVP MAY (if it supports the Fixed Attribute Default VC) or MAY NOT supply the correct declared value for this attribute. > 5. An NVP MUST NOT process attribute list and entity declarations that > logically follow references to any parameter entities that have not > been read by the NVP. As usual, everything in the external > DTD subset logically follows everything in the internal DTD subset. Feed the following document to an NVP which doesn't read any external entities: <!DOCTYPE Test [ <!ENTITY % xx SYSTEM 'file.ent'> <!ENTITY yy '2 %xx; 3'> <!ENTITY zz '1 &yy; 4'> ]> <Test>A &yy; B &zz; C</Test> What should it print out? Currently HXP sees the reference to %xx; while processing yy, realizes this has not been read, and from that moment on will no longer process any entity declarations, including those of yy and zz. It then throws a not well formed exception in Test content because &yy; has not been declared. When I feed this to AElfred (file.ent doesn't actually exist), it gives me "A 3 B 1 3 4 C", which I think must be a bug. XP throws an exception "parameter entity reference in entity value in internal subset", which means that it processed the declaration (correctly?), the thing here is the table in section 4.4 of the spec says that PE's are not recognized in content, so I thought XP would have passed right over this? --- Chris Hubick mailto:chris@h... http://www.hubick.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...)
|

Cart



