小编sub*_*ike的帖子

XSD属性NILLABLE无法正常工作

我正在努力获取一个xml文件来验证XSD架构,我在验证时遇到问题.每当我确认我得到错误说

"架构有效性错误:元素'{http://services.website.com/ProgramResponse}Population':''不是原子类型'xs:double'的有效值."

我相信这个错误发生是因为我在该字段中有一个空字符,显示如下:
<HarvPop> </ HarvPop>

因此,为了解决这个问题,我尝试对元素使用nillable ="true"属性,这样它们就可以为null,但仍然显示为空.这似乎是唯一的解决方案,但它根本不起作用.我仍然得到错误.

我目前正在使用XMLMate进行验证,我再次对其进行了多次在线验证.错误仍然存​​在.任何建议都会很棒.

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

<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>
Run Code Online (Sandbox Code Playgroud)

xml xsd xsd-validation

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

xml ×1

xsd ×1

xsd-validation ×1