- From: David Brownell <db@argon.Eng.Sun.COM>
- Date: Sun, 16 Aug 1998 16:40:39 -0700
- To: xml-names-issues@w3.org
Four comments here ... mostly on [NS 1], a minor goof on [NS 10]. - Dave 1. Production [NS 1] doesn't match the preceding definition: - Definition says the declaration is done with an ATTRIBUTE whose (name has a) prefix (that) is "xmlns". - Production 1 says the other side of the "Eq" is a SystemLiteral - But attributes have an "AttValue", allowing entity references Life would be simpler in several ways if production 1 were brought into line with the definition (use "AttValue" not "SystemLiteral"): * Implementations of parsers and other XML tools wouldn't need special cases to handle those attributes differently unless they were actually performing namespace-related processing. * "Layered" implementations of namespaces could be done, vs being precluded due to a need to modify attribute parsing everywhere to selectively prevent entity expansion. * Users of namespaces would regain flexibility, such as being able to put the namespace URIs into internal entities so that only one copy needs to be changed as systems evolve, and so that the semantically significant URIs are all in one place (vs. scattered all over a large document!) for organizations which prefer such information maintainence conventions. PROPOSED FIX: Update the production to use "AttValue": [1] NSDef ::= PrefixDef Eq AttValue However, see the next issue. 2. Careful reading of this text draws the conclusion, which I hope is a bug, that namespace declarations may not be placed in DTDs. PROPOSED FIX: Eliminate production [NS 1] in the Namespace draft. Modify the two productions where attribute names are used: [11] Attribute ::= (QName | PrefixDef) Eq AttValue [17] AttDef ::= S (QName | PrefixDef) S AttType S DefaultDecl ALSO provide some examples of <!ATTLIST ...> declarations showing "correct" usage of "xmlns" and "xmlns:foo" namespace declarations. For example, corresponding to the existing example in section 2, <!-- all "x" elements, and their children, may use the namespace prefix "edi". Its meaning is fixed except for children which explicitly redefine it. --> <!ATTLIST x xmlns:edi CDATA #FIXED 'http://ecommerce.org/schema' > 3. There's no text discussing the URI strings which are the values associated with the various "xmlns" attributes. A complete URI syntax is necessary since these names are compared (as strings) to determine namespace equality. Are fragment identifiers allowed, or disallowed as elsewhere in the XML specification? How about non-ASCII characters, leading spaces, etc? PROPOSED FIX: State that the URIs must be US-ASCII strings, with no fragment identifier or characters disallowed by URI syntax. It is a WF error to be anything else. ALSO provide a reference to the current URI spec, the latest one seems to be a somewhat elderly RFC 1630. 4. [NS 10] is called EmptyElement, so it's got a different name than [XML 44] EmptyElementTag. Seems likely to be an editing mistake. PROPOSED FIX: Rename [NS 10] to be "EmptyElementTag". [10] EmptyElementTag ::= '<' QName (S Attribute)* S? '/>'
Received on Sunday, 16 August 1998 19:40:24 UTC