我的工作得到一個XML文件來驗證對XSD架構和我遇到的麻煩驗證。每次我驗證我收到錯誤說XSD屬性的nillable不工作
「架構有效性錯誤:元素'{http://services.website.com/ProgramResponse}Population':''不是原子類型的有效值'xs:double 」「。
我認爲這個錯誤是因爲我在那場空字符,顯示如下:
< HarvPop> </HarvPop>
因此,要解決這個我用的nillable =「真」試屬性,因此它們可以爲空,但仍顯示爲空。這似乎是唯一的解決方案,但它根本無法工作。我仍然得到錯誤。
我目前使用我的驗證XMLMate和我有雙重檢查它agains幾個在線驗證者爲好。錯誤仍然存在。任何建議都會很棒。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:element name="Reports" type="tns:ReportsType"/>
<xsd:complexType name="ReportsType">
<xsd:sequence>
<xsd:element name="Report" type="tns:ReportType" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ReportType">
<xsd:sequence>
<xsd:element name="Id" nillable="true"/>
<xsd:element name="Brand" type="xsd:string"/>
<xsd:element name="Address" type="xsd:string"/>
<xsd:element name="City" type="xsd:string"/>
<xsd:element name="State" type="xsd:string"/>
<xsd:element name="ZipCode" type="xsd:string"/>
<xsd:element name="Entry" type="tns:EntryType" maxOccurs="unbounded" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EntryType">
<xsd:sequence>
<xsd:element name="RM" nillable="true" type="xsd:double"/>
<xsd:element name="Pop" nillable="true" type="xsd:double"/>
<xsd:element name="Wt" nillable="true" type="xsd:double"/>
<xsd:element name="EntryId" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
或者,改變從XS類型:雙到列表類型,其ITEMTYPE是xs:雙,其中的minLength = 0和最大長度= 1。這樣,您可以省略該值,而不需要冗餘的xsi:nil屬性。 –
你必須有XSI:無在XML =「真」使用的minOccurs的時候呢? – sublimeike
號零意味着可以具有節點當前和空的,的minOccurs = 0意味着整個節點可以被缺失。 –