Microsoft KB Archive/315358

= FIX: MSXML 3.0 Cannot Parse DTD NMTOKEN Values with More than One Colon =

Article ID: 315358

Article Last Modified on 11/15/2007

-

APPLIES TO


 * Microsoft XML Parser 3.0 Service Pack 2

-



This article was previously published under Q315358



SYMPTOMS
When you try to use MSXML 3.0 to validate an XML file against a Document Type Definition (DTD), and the data contains an NMTOKEN attribute with more than one colon character, you may receive the following error message:

-1072897501 Validate failed because the document does not contain exactly one root node.



RESOLUTION
A supported hotfix is now available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next service pack that contains this hotfix.

To resolve this problem, submit a request to Microsoft Online Customer Services to obtain the hotfix. To submit an online request to obtain the hotfix, visit the following Microsoft Web site:

http://go.microsoft.com/?linkid=6294451

Note If additional issues occur or any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. To create a separate service request, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

The English version of this fix should have the following file attributes or later:

  Date         Version      Size             File name -  20-Dec-2001  8.20.9220.0  1,105,408 bytes  Msxml3.dll 20-Dec-2001 8.20.9220.0     24,576 bytes  Msxml3a.dll 20-Dec-2001 8.20.9220.0     44,032 bytes  Msxml3r.dll



STATUS
Microsoft has confirmed that this is a problem in MSXML 3.0 Service Pack 2.



Steps to Reproduce the Behavior
  Create the following DTD file, and then name the file Nmtoken.dtd: <!ELEMENT datatype (desc)> <!ELEMENT desc (#PCDATA)> <!ATTLIST desc att NMTOKEN #REQUIRED >                     Create the following XML file, and then name the file Nmtoken.xml:  <!DOCTYPE datatype SYSTEM &quot;nmtoken.dtd&quot;> abc   Paste the following Microsoft Visual Basic Scripting Edition (VBScript) code in Notepad, and then save the text file as Nmtoken.vbs: Dim oDoc Dim oErr

Set oDoc = CreateObject(&quot;MSXML2.DOMDocument.3.0&quot;) oDoc.load &quot;nmtoken.xml&quot; oDoc.async = False

Set oErr = oDoc.validate If oErr.errorCode <> 0 Then WScript.Echo oErr.errorCode & &quot; &quot; & oErr.reason End If                    Double-click the Nmtoken.vbs file to run the VBScript code.</li></ol>

Keywords: kbhotfixserver kbqfe kbbug kbfix kbqfe KB315358

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.