簡體   English   中英

使用 JAXB 生成 JAVA 類時出錯:XPath 結果評估為空

[英]Error when generating JAVA classes with JAXB: XPath evaluation of results in empty

我有一個 XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.xyz.m" xmlns="http://www.xyz.m" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="N1" minOccurs="0">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="N_A">
            <xs:simpleType>
                <xs:restriction base="xs:byte">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="3"/>
                <xs:totalDigits value="2">
                </xs:totalDigits>
            </xs:restriction>
                </xs:simpleType>
            </xs:element>
        <xs:element name="N_B" minOccurs="1" maxOccurs="14">
            <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="5"/>
                <xs:enumeration value="6"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
    </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>    

我創建了一個.xjb文件來生成:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    version="2.1">
   <jaxb:bindings node="//xs:schema//xs:complexType[@name='N1']">
        <jaxb:class name="N1_XJB" />
    </jaxb:bindings>    
</jaxb:bindings>

我使用了xjc -b binding.xjb TestXSD.xsd命令,但我收到了這條錯誤消息:

[ERROR] XPath evaluation of "//xs:schema//xs:complexType[@name='N1']" results in empty target node line 6 

我嘗試了在 Stackoverflow 上找到的所有方法,但無法生成。

所以我的問題是, .xjb文件中缺少什么?

這對我有用:

  1. 您必須從<xs:element name="N1" minOccurs="0">中刪除minOccurs 因為此屬性會產生以下錯誤:

[ERROR] s4s-att-not-allowed: Attribute 'minOccurs' cannot appear in element 'element'.

  1. .xjb文件中,您必須更改以下行:

<jaxb:bindings node="//xs:schema//xs:complexType[@name='N1']">

到:

<jaxb:bindings schemaLocation="TestXSD.xsd" node="//xs:schema//xs:element[@name='N1']">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM