.NET 和Java 对象 XML序列化 库WOX

时间:2022-04-23
本文章向大家介绍.NET 和Java 对象 XML序列化 库WOX,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

当 .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对象。