- From: Ian Hickson <py8ieh@bath.ac.uk>
- Date: Wed, 29 Sep 1999 00:54:58 +0100 (BST)
- To: www-xml-schema-comments@w3.org
SUMMARY: Entities should also be namespaced. For example: <characters xmlns="http://.../special" xmlns:html="http://www.w3.org/..." xmlns:math="http://www.w3.org/Math..."> π &html:pi; &math:pi; </characters The current draft document says [1]: # The provision within XML Schema: Structures of a mechanism for # defining parsed entities presents problems for the relationship # between schema-validity and XML 1.0 well-formedness, since # references to entities declared only in a schema are undefined from # the XML 1.0 perspective. Strictly speaking, a well-formed XML # document may contain references to undefined entities only if it is # declared as standalone='no' and contains either an external subset # or one or more references to external parameter entities in their # internal subset. We get around this by [Definition:] defining a # nearly well-formed XML document to be one which either is # well-formed per XML 1.0, or which fails to be well-formed only # because of undefined general entity references, but which would be # well-formed if it were standalone='no' and identified an external # subset. We consider this justified on the grounds that the use of a # namespace declaration which refers to a schema functions rather as # an external subset, and from the XML 1.0 perspective such a # reference almost of necessity renders the document non-standalone # when schema-validation is applied. The issue of entities becomes quite important especially when involving many namespaces. For example, take the following XHTML document: <html xmlns="http://www.w3.org/TR/xhtml1/strict"> <head> <title>Mozilla Tests: XML namespace</title> </head> <body> <h1>Relationships between θ and π</h1> <math xmlns="http://www.w3.org/Math/MathML"> <mrow> <mi>θ</mi> <mo>=</mo> <mn>π</mn> </mrow> </math> <relationships xmlns="http://ns.ieh.ch/relationships/dtd"> <equals type="numeric"> <i>θ</i> <i>π</i> </equals> </relationships> </body> </html> It has a section that is namespaced as MathML, and another that is namespaced as a fictional "relationships" fragment, and each of the three namespaces (XHTML, MathML, relationships) have different expansions for their respective θ and π entities. Currently, the above document is not even well-formed, because the entities have not been declared (after all, there is no DOCTYPE). Per the draft schema spec it would be "nearly-well-formed". (!) But even if they _were_ declared, there would still be no way to make "θ" mean something different depending on the active namespace! And the following is even less possible: <math xmlns="http://www.w3.org/Math/MathML"> <mrow> <mi>θ</mi> <mo>=</mo> <mn>π</mn> </mrow> <mtext xmlns:html="http://www.w3.org/TR/xhtml1/strict"> <html:p>This is how &html:theta and &html:pi; are equal.</html:p> </mtext> </math> Dan Connolly suggested I propose this in this forum, so here goes. It would be very useful for entities to be "declared" by references to a namespace in the form xmlns="...", much like elements are currently "declared" by the xmlns attribute. (Pardon my dodgy terminology, I'm a CSS guy, not an XML guy...) It would further be useful to be able to explicitly qualify entities using the same form as elements and attributes are qualified now: &html:pi; Assuming that the namespace prefix is defined by a xmlns:html="" attribute on a parent element, of course. What is the likelihood of XML Schemas, XML 2, or XML Namespaces 2 covering such an extension? ---- References ---- [1] paragraph containing http://www.w3.org/TR/xmlschema-1/#key-nearly-wf Cheers, -- Ian Hickson : Is your JavaScript ready for Nav5 and IE5? : Get the latest JavaScript client sniffer at : http://developer.netscape.com/docs/examples/javascript/browser_type.html
Received on Tuesday, 28 September 1999 19:55:01 UTC