質問

XSDスキーマに対して検証するためにXMLファイルを取得することに取り組んでおり、検証に問題があります。検証するたびに、エラーが発生します

「スキーマの妥当性エラー:要素」{http://services.website.com/programsponse}ポピュレーション ':' 'は、原子型' xs:double 'の有効な値ではありません。」

このエラーは、このフィールドにヌル文字があり、次のように表示されているために発生すると思います。
<harvpop> < /harvpop>

したがって、これを解決するために、要素にnillable = "true"属性を使用してみました。これが唯一の解決策のようですが、まったく機能していません。まだエラーが発生します。

私は現在、私の検証にXMLMateを使用していますが、いくつかのオンライン検証剤も再び再確認しました。エラーは引き続き持続します。どんな提案でも素晴らしいでしょう。

<?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>

役に立ちましたか?

解決

のようなノード < HarvPop>< /HarvPop> 値はそこにあり、その値は空の文字列であると述べています。

このw3.orgページの情報に基づいて: http://www.w3.org/tr/xmlschema-0/#nils

Nillable属性は次のように使用されます。

意味:<xsd:element name="shipDate" type="xsd:date" nillable="true"/>

使用法:<shipDate xsi:nil="true"></shipDate>

つまり、値がnullであることを具体的に述べる必要があります。

それを行うもう1つの方法は、値が欠落していることを許可することです。

他のヒント

また、最小限のコードで問題を修正することがわかった1つの方法は、XSDにデフォルト= "0"属性を追加することでした。これにより、NILをデフォルトにすることで、NILに対処することなく、ダブルとして検証できます。

XSDを強く入力したXMLドキュメントの脱必要なエラー

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top