1

我正在使用从这里下载的官方 XSD 架构:

http://docs.oasis-open.org/ubl/os-UBL-2.0.zip

(路径:xsd/maindoc/UBL-Order-2.0.xsd)

当我使用以下命令使用 XJC 生成 java 类时,我总是在控制台中收到一个错误,我不知道如何处理。

命令:

xjc -d C:\Users\Oscar\Desktop\results -p com.ubl.order C:\Users\Oscar\Desktop\os-UBL-2.0\xsd\maindoc\UBL-Order-2.0.xsd

错误:

parsing a schema...
[WARNING] Simple type "UnitCodeContentType" was not mapped to Enum due to EnumMemberSizeCap limit. Facets count: 1.093, current limit: 256. You can use customization attribute "typesafeEnumMaxMembers" to extend the limit.
  line 38 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/CodeList_UnitCode_UNECE_7_04.xsd

[WARNING] Simple type "BinaryObjectMimeCodeContentType" was not mapped to Enum due to EnumMemberSizeCap limit. Facets count: 616, current limit: 256. You can use customization attribute "typesafeEnumMaxMembers" to extend the limit.
  line 38 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/CodeList_MIMEMediaTypeCode_IANA_7_04.xsd

[WARNING] Simple type "LanguageCodeContentType" was not mapped to Enum due to EnumMemberSizeCap limit. Facets count: 276, current limit: 256. You can use customization attribute "typesafeEnumMaxMembers" to extend the limit.
  line 38 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/CodeList_LanguageCode_ISO_7_04.xsd

compiling a schema...
[ERROR] A class/interface with the same name "com.ubl.order.LocationType" is already in use. Use a class customization to resolve this conflict.
  line 9890 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonAggregateComponents-2.0.xsd

[ERROR] (Relevant to above error) another "LocationType" is generated from here.
  line 1543 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.TextType" is already in use. Use a class customization to resolve this conflict.
  line 2598 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "TextType" is generated from here.
  line 1070 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.NameType" is already in use. Use a class customization to resolve this conflict.
  line 1718 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "NameType" is generated from here.
  line 1105 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.AmountType" is already in use. Use a class customization to resolve this conflict.
  line 613 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "AmountType" is generated from here.
  line 57 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.MeasureType" is already in use. Use a class customization to resolve this conflict.
  line 1668 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "MeasureType" is generated from here.
  line 930 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.QuantityType" is already in use. Use a class customization to resolve this conflict.
  line 2143 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "QuantityType" is generated from here.
  line 1035 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.ChannelCodeType" is already in use. Use a class customization to resolve this conflict.
  line 763 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "ChannelCodeType" is generated from here.
  line 119 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.DocumentStatusCodeType" is already in use. Use a class customization to resolve this conflict.
  line 1103 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "DocumentStatusCodeType" is generated from here.
  line 618 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.PackagingTypeCodeType" is already in use. Use a class customization to resolve this conflict.
  line 1873 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "PackagingTypeCodeType" is generated from here.
  line 1113 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.TransportModeCodeType" is already in use. Use a class customization to resolve this conflict.
  line 2753 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "TransportModeCodeType" is generated from here.
  line 1708 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.AllowanceChargeReasonCodeType" is already in use. Use a class customization to resolve this conflict.
  line 603 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "AllowanceChargeReasonCodeType" is generated from here.
  line 19 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.TransportEquipmentTypeCodeType" is already in use. Use a class customization to resolve this conflict.
  line 2728 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "TransportEquipmentTypeCodeType" is generated from here.
  line 1609 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.PaymentMeansCodeType" is already in use. Use a class customization to resolve this conflict.
  line 1978 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "PaymentMeansCodeType" is generated from here.
  line 1212 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.CurrencyCodeType" is already in use. Use a class customization to resolve this conflict.
  line 913 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "CurrencyCodeType" is generated from here.
  line 517 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.LongitudeDirectionCodeType" is already in use. Use a class customization to resolve this conflict.
  line 1563 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "LongitudeDirectionCodeType" is generated from here.
  line 915 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.SubstitutionStatusCodeType" is already in use. Use a class customization to resolve this conflict.
  line 2478 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "SubstitutionStatusCodeType" is generated from here.
  line 1411 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.LineStatusCodeType" is already in use. Use a class customization to resolve this conflict.
  line 1528 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "LineStatusCodeType" is generated from here.
  line 816 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] A class/interface with the same name "com.ubl.order.LatitudeDirectionCodeType" is already in use. Use a class customization to resolve this conflict.
  line 1468 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Relevant to above error) another "LatitudeDirectionCodeType" is generated from here.
  line 717 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 9890 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonAggregateComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1543 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2598 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1070 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1718 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1105 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 613 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 57 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1668 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 930 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2143 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1035 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UnqualifiedDataTypeSchemaModule-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 763 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 119 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1103 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 618 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1873 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1113 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2753 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1708 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 603 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 19 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2728 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1609 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1978 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1212 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 913 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 517 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1563 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 915 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 2478 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 1411 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1528 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 816 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 1468 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 717 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-QualifiedDatatypes-2.0.xsd

[ERROR] Two declarations cause a collision in the ObjectFactory class.
  line 166 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonAggregateComponents-2.0.xsd

[ERROR] (Related to above error) This is the other declaration.
  line 230 of file:/C:/Users/Oscar/Desktop/os-UBL-2.0/xsd/common/UBL-CommonBasicComponents-2.0.xsd

Failed to produce code.

我尝试的是不使用官方 XSD 并使用 trang.jar 生成我自己的。结果很好,我得到了生成的 java 类,但是当我使用 JAXB(使用这些类)创建 XML 文档时,命名空间不正常。

所以,我想要的是使用官方的 XSD,但经过修改(也许)使其工作。

我该如何解决这个问题以获取我生成的类?

提前致谢。

4

2 回答 2

3

尝试这个。

  1. 确保您的 JDK 版本是 1.6 或更高版本
  2. PATH 环境变量中的 $JAVA_HOME/bin
  3. 打开一个 cmd 并定位到 /UBL-2.0/xsd/maindoc
  4. 跑:xjc UBL-Order-2.0.xsd
于 2012-06-12T04:16:42.600 回答
2

I created a library that encapsulates all the UBL 2.0 and 2.1 enerated files plus some sanity methods for the usage with Java 1.6 and Maven. Look at https://github.com/phax/ph-ubl for details.

于 2013-05-24T06:57:13.357 回答