我試圖解析和驗證XML(JAXB-implement執行-2.2.4.jar),而我得到的錯誤:JAXB驗證錯誤 - cvc-complex-type.2.4.a:從元素'codeSystem'開始找到無效內容。一個 '{} codeSystem' 有望
cvc-complex-type.2.4.a: Invalid content was found starting with element 'codeSystem'. One of '{codeSystem}' is expected.
我不知道是什麼導致它,因爲我認爲我的XML看起來是正確的。
爲codeSystem的架構要求:
<xs:complexType name="GenericPropertyType">
<xs:element name="codeSystem" type="tns:CodeSystem">
</xs:element>
<xs:element name="code" type="tns:Code">
</xs:element>
<xs:element name="codeText" type="tns:CodeText" minOccurs="0">
</xs:element>
</xs:complexType>
到的codeSystem所屬的GenericProperty Java類:正在解析
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "GenericPropertyType", propOrder = {
"codeSystem",
"code",
"codeText"
})
public class GenericPropertyType {
@XmlElement(required = true)
protected String codeSystem;
@XmlElement(required = true)
protected String code;
@XmlElement
protected String codeText;
/**
* Getters and Setters ommitted.
*
*/
}
的XML:
<genericProperty>
<codeSystem>8B-30-33</codeSystem>
<code>EMAIL_RETRY_COUNT</code>
<codeText>5</codeText>
</genericProperty>
我試着它有和沒有提供genericProperty
和中的命名空間像xmlns="http://www.somedomain.com/context"
元素,但錯誤仍然相同。有任何想法嗎?
編輯 的CodeSystem型架構:
<xs:simpleType name="CodeSystem">
<xs:annotation>
<xs:documentation>Simple Type with Input Restictions</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse" fixed="true"/>
<xs:maxLength value="64" fixed="true"/>
</xs:restriction>
如何在模式中定義類型的CodeSystem? – flup
看起來不錯,對我來說。你能否在不使用JAXB的情況下針對模式驗證文檔? – flup