[
Lists Home |
Date Index |
Thread Index
]
But Namespaces in XML redefined what you could use as an attribute name:
[12] Attribute ::= NSAttName Eq AttValue
| QName Eq AttValue [
NSC: Prefix Declared ]
NSAttName is defines the magic xmlns attributes so let's take the QName
alternative:
[6] QName ::= (Prefix ':')? LocalPart
[7] Prefix ::= NCName
[8] LocalPart ::= NCName
Notice the colon is attached to the optional prefix. The LocalPart,
being an NCName, can no longer contain colons:
[4] NCName ::= (Letter | '_') (NCNameChar)* /* An
XML Name, minus the ":" */
[5] NCNameChar ::= Letter | Digit | '.' | '-' | '_' |
CombiningChar | Extender
Basically, you can still have a colon in the middle of an attribute name
(between the prefix and local part) but you can no longer have a colon
at the beginning of an attribute name since a prefix has to appear
before it.
Conclusion: that XML snippet *is* well-formed according to XML 1.0 but
*not* according to Namespaces in XML. Alas.
-- Jason
Toni Uusitalo wrote:
> Spec 2.3 "Common Syntactic Constructs" says:
>
> [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
> CombiningChar | Extender
> [5] Name ::= (Letter | '_' | ':') (NameChar)*
>
> Colon and underscore are valid name start characters.
> I believe parsers shouldn't report this as a well-formedness error.
>
>
>
> with respect,
> Toni Uusitalo
|