On 7/11/07, Hussein Shafie <hussein at xmlmind.com> wrote:
> Niels Grundtvig Nielsen wrote:
> > Just upgraded to 3.6.1, now that I have been allotted time to
> > concentrate on a DITA test project <g>
> >
> > First question: whatever combination of letters and/or numbers I use as
> > an arbitrary ID, validation always fails. It looks to me as though the
> > ID has to be of type NMTOKEN ? which, according to w3c, is "any mixture
> > of name characters". Tips on resolving this will be appreciated!
> >
>
> I found this in the W3C recommendation (http://www.w3.org/TR/xml/):
>
> ---
> Values of type ID  MUST match the Name production.
>
> [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar
> | Extender
>
> [5] Name ::= (Letter | '_' | ':') (NameChar)*
> ---
>
> This is clearly not "any mixture of name characters".
>
>
>
>
> ---
> PS: Strangely, W3C XML Schema (http://www.w3.org/TR/xmlschema-2/#ID) is
> *more* *restrictive* (???)

This is not strange at all
ID in XML 1.0 are not namespace aware
xs:ID in XML Schema 1.0 are namepace aware
hence you cannot find a COLON (:) in the name

to have a faire comparaison, you need to compare
XML 1.0 + Namespace 1.0
with
XML Schema 1.0

My two cents

Xmlizer


>
> xsd:ID is defined as follows:
>
> [Definition:] ID represents the ID attribute type from [XML 1.0 (Second
> Edition)]. The ?value space? of ID is the set of all strings that
> ?match? the NCName production in [Namespaces in XML]. The ?lexical
> space? of ID is the set of all strings that ?match? the NCName
> production in [Namespaces in XML]. The ?base type? of ID is NCName.
>
> [4] NCName ::= (Letter | '_') (NCNameChar)* /*XML Name minus the ":"*/

Reply via email to