当 .NET 应用程序将对象转换为 XML 文档并存储该 XML。实际上,XML 被用作可移植数据存储机制,因为 .NET 对象被转换为 XML,然后又从 XML 转换为 Java,反之亦然。
Carlos Jaimez 和 Simon Lucas 开发的 Web Objects in XML(WOX,woxserializer.sourceforge.net)就是一个完成此项任务的开源项目。
下面是摘自其网站的 Java 到 .NET 转换示例。下面是采用 Java 和 C# 定义的 Student 和 Course 类。
图 3 用 Java 和 C# 编写的 Student 和 Course 类
- // Java classes
- public class Student
- {
- private String name;
- private int registrationNumber;
- private Course[] courses;
- }
- public class Course
- {
- private int code;
- private String name;
- private int term;
- }
-
- // ***************************************************
- // .NET classes in C#
- public class Student
- {
- private String name;
- private Int32 registrationNumber;
- private Course[] courses;
- }
- public class Course
- {
- private Int32 code;
- private String name;
- private Int32 term;
- }
-
如果我们使用 .NET 和 Java 应用程序将以上 Student 和 Course 对象使用 WOX 库将这些对象转换为 XML。 之后,如果应用程序想要从XML读取这些对象,则再次读取 WOX 库,将 XML 转换回 Java 或 .NET 对象格式。下面是转换为 XML 格式的 Student 和 Course 类。
转换为 XML 的 Java 和 .NET 类
- <object type="Student" id="0">
- <field name="name" type="string" value="Carlos Jaimez"/>
- <field name="registrationNumber" type="int" value="76453"/>
- <field name="courses">
- <object type="array" elementType="Course" length="3" id="1">
- <object type="Course" id="2">
- <field name="code" type="int" value="6756"/>
- <field name="name" type="string"
- value="XML and Related Technologies"/>
- <field name="term" type="int" value="2"/>
- </object>
- <object type="Course" id="3">
- <field name="code" type="int" value="9865"/>
- <field name="name" type="string"
- value="Object Oriented Programming"/>
- <field name="term" type="int" value="2"/>
- </object>
- <object type="Course" id="4">
- <field name="code" type="int" value="1134"/>
- <field name="name" type="string" value="E-Commerce Programming"/>
- <field name="term" type="int" value="3"/>
- </object>
- </object>
- </field>
- </object>
-
在您的应用程序中调用 WOX将XML转换为.NET或是Java对象。