Microsoft KB Archive/925272

= FIX: The XML serialization may lose some optional elements in an XSD schema in the .NET Framework 2.0 =

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 &quot;Specified&quot; 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:

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

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, Itanium-based versions


STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.



MORE INFORMATION
After you apply this hotfix, deserialization correctly sets the  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 &quot;Specified&quot; 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

-

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

© Microsoft Corporation. All rights reserved.