我以前使用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类型。