OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

dita-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [dita-comment] FW: Declaration of "xml" namespace in commonElementMod.xsdincompatible with Microsoft XML technologies...

Hi Su-Laine,

I checked the validation of the schemas with XMLSpy 2007 and oXygen 11.2.  Removing the XML namespace declaration completely from commonElementsXSD.mod makes them invalid with Xerces, XMLSpy, LibXML and XSV parsers.  If I remove the circular references to groups in the shell schemas the schema validates fine with MSXML .NET in oXygen and Stylus Studio.  I was able to replicate the issue with MSXML 4.0 from oXygen.  If I use MSXML 6.0 to validate a document from Stylus Studio, it validates fine with DOM or SAX.

I made the following change in commonElementsMod.xsd  -->  <xs:import namespace="http://www.w3.org/XML/1998/namespace" /> (removed reference to the local xml.xsd file) and it worked fine.  That said I think that I would still prefer a reference to a local file so we can avoid having the XML parser going to W3 to retrieve the actual file.

Excerpts from XML 1.0 Spec (Third Edition). 

Namespace constraint: Reserved Prefixes and Namespace Names

The prefix xml is by definition bound to the namespace name http://www.w3.org/XML/1998/namespace. It MAY, but need not, be declared, and MUST NOT be bound to any other namespace name. Other prefixes MUST NOT be bound to this namespace name, and it MUST NOT be declared as the default namespace.

The prefix xmlns is used only to declare namespace bindings and is by definition bound to the namespace name http://www.w3.org/2000/xmlns/. It MUST NOT be declared . Other prefixes MUST NOT be bound to this namespace name, and it MUST NOT be declared as the default namespace. Element names MUST NOT have the prefix xmlns.

All other prefixes beginning with the three-letter sequence x, m, l, in any case combination, are reserved. This means that:

    *      users SHOULD NOT use them except as defined by later specifications
    *      processors MUST NOT treat them as fatal errors.

Though they are not themselves reserved, it is inadvisable to use prefixed names whose LocalPart begins with the letters x, m, l, in any case combination, as these names would be reserved if used without a prefix.

Namespace constraint: Prefix Declared

The namespace prefix, unless it is xml or xmlns, MUST have been declared in a namespace declaration attribute in either the start-tag of the element where the prefix is used or in an ancestor element (i.e., an element in whose content the prefixed markup occurs).

Xerces, XMLSpy, MSXML 6.0 (Sax and DOM via Stylus Studio), LibXML and XSV all validate a test DITA file properly. 
MSXML .NET has an issue (known) with circular references in the XSDs - This is an issue with the parser since it's perfectly valid as per the XSD 1.0 spec. Once those are removed the test DITA file validates properly.
MXSML 4.0 complains about XML namespace.

MSXML 6.0 seems to be only product that can validate the test DITA doc without a reference to the namespace in commonElementMod.xsd.

According to the MSXML 4.0 SP3  Release notes [1] support for MSXML 4.0 SP2 ended in mid April 2010 and SP3 is in maintenance mode.  I'm a bit hesitant to make a change to the schemas (that has been there since DITA 1.0) for a version of a product that's in maintenance mode and that the issue is resolved in newer versions of the product.

Kind regards,

[1] - http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/MSXML4%20SP3%20RTM%20Release%20Note.htm

On 7/19/2010 6:34 PM, Su-Laine Yeo wrote:
BECDDDED92C3B949A38F5BC4BF56D21F03DFA51E@van-mail.jena.local" type="cite">

I’m passing this along on behalf of a colleague:



In the DITA 1.2 XSDs, commonElementMod.xsd was changed to declare the "xml" namespace.  This change causes problems when using Microsoft XML processor technologies.  Neither MSXML nor .NET will load commonElementMod.xsd or documents referencing this schema.  Instead, a parse error is reported to the effect that “The namespace prefix is not allowed to start with the reserved string "xml".  At line(24), column(56).”


Microsoft’s interpretation of Namespace constraint: Reserved Prefixes and Namespace Names ends up that “nobody” can explicitly declare the “xml” namespace.  Given the MS technology has been this way a long time and thus unlikely to change anytime soon, I recommend removing the xml namespace declaration in commonElementMod.xsd schema so DITA 1.2 content can be parsed by MS technologies.



Addam Smith






Su-Laine Yeo
Solutions Consultant

JustSystems Canada, Inc.
Office: 778-327-6356


XMetaL Community Forums: http://forums.xmetal.com/




No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.839 / Virus Database: 271.1.1/3016 - Release Date: 07/19/10 14:36:00

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]