我有一个xml,我已经生成了xsd文件。
XML文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<RateQuote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.con-way.com/XML/RateQuote.xsd"
schemaVersion="1.0">
<OriginZip country="US">19348</OriginZip>
<DestinationZip country="US">97202</DestinationZip>
<ChargeCode>P</ChargeCode>
<Item>
<CmdtyClass>775</CmdtyClass>
<Weight unit="lbs">667</Weight>
<Rate currency="USD">337.22</Rate>
<Charge currency="USD">2249.26</Charge>
</Item>
<Item>
<CmdtyClass>100</CmdtyClass>
<Weight unit="lbs">555</Weight>
<Rate currency="USD">435.12</Rate>
<Charge currency="USD">2414.92</Charge>
</Item>
<ItemTotal>
<TotalWeight unit="lbs">1222</TotalWeight>
<TotalCharge currency="USD">4664.18</TotalCharge>
</ItemTotal>
<AccessorialCharges>
<OtherAccessorialCharges code="GUR"
name="CON-WAY GUARANTEED!">466.42</OtherAccessorialCharges>
<OtherAccessorialCharges code="DNC"
name="DEST NOTIFICATION">41.25</OtherAccessorialCharges>
<FuelSurcharge code="FSC" name="FUEL SURCHARGE 27.70%"
rate="27.70">645.99</FuelSurcharge>
<TotalAccessorialCharges currency="USD">1153.66</TotalAccessorialCharges>
</AccessorialCharges>
<Discount rate="50.0">2332.09</Discount>
<NetCharge currency="USD">3485.75</NetCharge>
<TransitTime>4</TransitTime>
<EffectiveDate>11/24/14</EffectiveDate>
<Disclaimer></Disclaimer>
<EstDeliverDate>12/02/14</EstDeliverDate>
<SpecialSavings></SpecialSavings>
</RateQuote>
XSD文件
<?xml version="1.0" encoding="utf-16"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="RateQuote">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="OriginZip">
<xsd:complexType>
<xsd:attribute name="country" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="DestinationZip">
<xsd:complexType>
<xsd:attribute name="country" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ChargeCode" type="xsd:string" />
<xsd:element maxOccurs="unbounded" name="Item">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CmdtyClass" type="xsd:int" />
<xsd:element name="Weight">
<xsd:complexType>
<xsd:attribute name="unit" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="Rate">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="Charge">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemTotal">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TotalWeight">
<xsd:complexType>
<xsd:attribute name="unit" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="TotalCharge">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AccessorialCharges">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="OtherAccessorialCharges">
<xsd:complexType>
<xsd:attribute name="code" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="FuelSurcharge">
<xsd:complexType>
<xsd:attribute name="code" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="rate" type="xsd:decimal" />
</xsd:complexType>
</xsd:element>
<xsd:element name="TotalAccessorialCharges">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Discount">
<xsd:complexType>
<xsd:attribute name="rate" type="xsd:decimal" />
</xsd:complexType>
</xsd:element>
<xsd:element name="NetCharge">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="TransitTime" type="xsd:int" />
<xsd:element name="EffectiveDate" type="xsd:dateTime" />
<xsd:element name="Disclaimer" type="xsd:string" />
<xsd:element name="EstDeliverDate" type="xsd:dateTime" />
<xsd:element name="SpecialSavings" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="xsi:noNamespaceSchemaLocation" type="xsd:string" />
<xsd:attribute name="schemaVersion" type="xsd:decimal" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
但是当我在eclipse中生成JAXB类时。
NetCharge 类是使用变量字符串“货币”创建的,但没有值变量。
所有其他使用值和属性的类都会发生这种情况。
请帮帮忙。
您的XML架构不允许< code>NetCharge中的文本内容,只允许属性。您可能需要一个内容简单的复杂类型:
xsd的含义:simpleContent
请尝试以下操作:
<xs:complexType>
<xs:simpleContent>
<xs:extension base="string">
<xs:attribute name="currency" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
应该生成一个content
属性。
Java-jaxb-maven插件 我有基于maven的Web应用程序,在pom我有以下插件,应该生成jaxb. xsd到java类。 当我执行clean、compile时,包xsd类不会生成。当我执行mvn jaxb2:generate manually时,它会在generate source文件夹中生成xsd类,但不会在war中打包。 我如何才能让它在不手动执行“mvn jaxb2:gener
我们试图使用gradle、xsd和xjc生成JAXB类,JAXB类应该具有XmlRootElement注释,以便可以将其作为web服务响应公开。我们正在跟踪这个链接http://azagorneanu.blogspot.com/2011/09/configure-maven-to-generate-classes.html,这很有帮助,但我们无法找到一个只有gradle的特定示例。所以我们想出了一
myType也被定义为complexType。然后得到生成的类MyResponse.java和Reference.java。我可以通过以下方式分配“引用”的值: 而且奏效了。 现在我只是删除了maxOccurs=“unbounded”,它不再起作用了。响应不再是List类型,而是JaxBelement类型。我试着用: 谁能告诉我,当它不是一个列表时,什么是正确的做法?
如果 XML 是由 JAXB 类(而不是由 XSD)生成的,那么我没有要验证的 XSD。如何验证 XML?JAXB 在开始取消编组之前是否会自动对 XML 进行验证?
我有我的xml模式定义如下 我使用maven-jaxb2-plugin根据这个xsd生成Java类。 生成代码后,我发现所有元素都有@xmlement注释(required=true)。为什么?我有许多minOccurs=“0”元素。为什么元素上总是添加required=true。
背景:我正在尝试将WSDL/XSD转换为Java类 问题:生成的包名称与命名空间不匹配。数字命名空间的最后一部分丢失,包中缺少02以下的部分 XSD已经-xmlns=“urn:iso:std:iso:20022:tech:XSD:pain.001.001.02” Java类生成——包iso。标准iso_20022.tech.xsd。疼痛001 001; 采取的步骤: 我尝试了2个maven插件,两