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 ":"*/

