2
我有一個關於JAXB和繼承有以下要求的問題:如何正確處理繼承的JAXB
- XSD第一
- 我們使用org.jvnet.jaxb2.maven2生成XSD代碼:Maven的JAXB2 -plugin
- XML驗證應該工作
這是我的基地XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
targetNamespace="http://api.mijathi.be/msg/schema/vehicle"
xmlns="http://api.mijathi.be/msg/schema/vehicle"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="vehicles">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="vehicleType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="vehicleType" type="vehicleType"/>
<xs:complexType name="vehicleType" abstract="true">
<xs:sequence/>
</xs:complexType>
</xs:schema>
現在的實現:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
targetNamespace="http://api.mijathi.be/msg/schema/vehicle"
xmlns="http://api.mijathi.be/msg/schema/vehicle"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:include schemaLocation="http://api.mijathi.be/msg/schema/vehicle/main.xsd"/>
<xs:element name="car" type="carDescription" substitutionGroup="vehicleType"/>
<xs:complexType name="carDescription">
<xs:complexContent>
<xs:extension base="vehicleType">
<xs:sequence>
<xs:element name="make" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
類的產生很好的成功。我甚至可以很好地解組使用此示例XML:
<veh:vehicles xmlns:veh="http://api.mijathi.be/msg/schema/vehicle">
<veh:vehicleType xsi:type="veh:car" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<veh:make>string</veh:make>
</veh:vehicleType>
</veh:vehicles>
但是外部,使用IDE例如,當然XML驗證這一塊失敗。因爲veg命名空間中沒有定義「car」:
<veh:vehicleType xsi:type="veh:car" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<veh:make>string</veh:make>
</veh:vehicleType>
我該如何解決這個問題?
實際上,xsd在intellij中註冊得很好。車輛類型的xsi:類型僅部分驗證失敗。我會檢查您提供的進口提示,但我想知道替代組將如何應對......。 – 2014-10-08 21:14:14