我試圖寫這幾行XML模式:XML Schema的驗證問題
<place id = "1234">
<placeName lang = "de" type = "std"> SOMENAME <gender> n </gender> </placeName>
</place>
架構如下:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="place">
<xs:complexType >
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:sequence>
<xs:element name= "placeName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:sequence>
<xs:element name= "gender" type= "xs:string"/>
</xs:sequence>
<xs:attribute name= "lang" type= "xs:string" />
<xs:attribute name= "type" type= "xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>
我不斷收到此錯誤:E [Xerces的] s4s-elt-invalid-content.1:'#AnonType_placeNameplace'的內容無效。元素「序列」無效,放錯位置或發生頻率過高。 「序列」是第二個,「性別」標籤。
後我做了一些改變:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="place">
<xs:complexType >
<xs:complexContent mixed = "true">
<xs:extension base="xs:anyType">
<xs:sequence>
<xs:element name= "placeName">
<xs:complexType>
<xs:complexContent mixed= "true">
<xs:extension base="xs:anyType">
<xs:sequence>
<xs:element name= "gender" type= "xs:string"/>
</xs:sequence>
<xs:attribute name= "lang" type= "xs:string" />
<xs:attribute name= "type" type= "xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>
我繼續接收此錯誤:COS-nonambig:地名與WC [##任何](或從它們的取代基的元素)違反「唯一粒子歸因「。在根據該模式驗證,不確定性會爲這兩個粒子
問題已關閉,謝謝大家!我發現這個神奇的工具:http://www.freeformatter.com/xsd-generator.html我的問題是,我不能指定「字符串」(SOMENAME)如果節點(placeName)已經包含屬性字符串和子模式,串。但根據上面的xml-xsd轉換器,我甚至不需要指定節點包含文本字符串。大! – user3241376