Microsoft KB Archive/925272

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Article ID: 925272

Article Last Modified on 12/3/2007



APPLIES TO

  • Microsoft .NET Framework 2.0



SYMPTOMS

In the Microsoft .NET Framework 2.0, the XML serialization may lose some optional elements in an XSD schema.

CAUSE

This problem occurs because the XMLSerializer class in the .NET Framework 2.0 does not set the public bool field for an optional element during deserialization.

For an optional element, the XML Schema Definition tool (Xsd.exe) generates the following public fields:

  • A public field of the corresponding data type
  • A public field of the bool type. The name of this field is the name of the element field appended with the "Specified" string.

For example, the name of the element field is StartDate. The name of the public bool field becomes StartDateSpecified.

During deserialization, the XMLSerializer class sets the public field of the corresponding data type for the element. However, the XMLSerializer class does not set the public bool field. This behavior causes the object that contains the optional element to lose the optional element when you serialize the same object back into XML.

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:

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:

Prerequisites

You must have the Microsoft .NET Framework 2.0 installed to apply this hotfix.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace any other hotfixes.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

The Microsoft .NET Framework 2.0, x86-based versions
File name File version File size Date Time Platform
System.xml.dll 2.0.50727.226 2,035,712 10-Oct-2006 19:06 x86
The Microsoft .NET Framework 2.0, x64-based versions
File name File version File size Date Time Platform
System.xml.dll 2.0.50727.226 2,035,712 10-Oct-2006 18:45 a64
The Microsoft .NET Framework 2.0, Itanium-based versions
File name File version File size Date Time Platform
System.xml.dll 2.0.50727.226 2,035,712 10-Oct-2006 18:45 i64


STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

After you apply this hotfix, deserialization correctly sets the FieldNameSpecified name of the public bool field on the .NET Framework 2.0 class based on whether the name of the public bool field has the string "Specified" appended in XML.

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates


Keywords: kbbug kbfix kbqfe kbpubtypekc kbhotfixserver KB925272