如何从包含MSFT序列化:GUID数据类型的XSD生成Java代码?

2020年7月25日 26点热度 0条评论

我以前使用Jaxme 2库从.XSD文件生成Java代码没有问题。我目前遇到从包含http://schemas.microsoft.com/2003/10/Serialization/名称空间的XSD文件生成Java的问题。

我的.XSD的一些示例代码是:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/MyMessagingTypes"
       xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/"
       elementFormDefault="qualified"
       xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:complexType name="MyMessage">
    <xs:sequence>
      ...
      <xs:element minOccurs="0" name="MyPlanID" type="ser:guid" />
      ...
    </xs:sequence>
  </xs:complexType>
  <xs:element name="MyMessage" nillable="true" type="tns:MyMessage" />
</xs:schema>

我得到的错误是:

元素无效:未定义类型{
http://schemas.microsoft.com/2003/10/Serialization/} guid。

任何想法是什么问题,或者如何从此xsd生成Java代码?

解决方案如下:

我不知道http://schemas.microsoft.com/2003/10/Serialization/的模式位于何处,但是您必须找到它,并确保Java可以看到这两种模式。或者,您可以编辑XSD以包括您自己的GUID类型。