2017-10-04 8 views
-1

することはできませんnullでなく、シンプルで私は、あなたが次のような状況を持っているときにエラーがスローされないことを確認するための最良の方法を探しています:XSD複合型は、内部のタイプは空

私が検証され、単純なタイプの電話番号を持っています

<xs: simpleType name="phone-number"> 
<xs:restriction Base="xs:token"> 
<xs:pattern value="\d{9}"/> 
</xs:restriction> 
<xs:SimpleType> 

パターンでは空の値は許可されません.9桁の値しか使用できません。

私はcomplexType person-dataの中にphone-number型の要素を持っています。

<xs:complexType name="person-data"> 
     <xs:all> 
     <xs:element name="phone-number" type="phone-number" minOccurs="0"/> 

妥当性検査が空の値を渡す(または検証しない)ための最良の方法は何ですか? XMLファイルは人物データタグが含まれていない場合に

問題が表示されます(それにそのヌルを取る) - その後、検証は、電話番号のタイプに失敗し

+0

世界中で9桁の電話番号を使用していますが、興味のあるものはありますか? –

+1

あなたが何を求めているのかははっきりしていません。 "空の値で検証が合格する(または全く検証されない)ことを保証する最良の方法は何ですか?" person-data要素がない場合、私たちに示したスキーマのビットは無関係です。それが存在するときに起こることにのみ影響します。人のデータ要素に空の内容を持つ電話番号要素を含めることを許可したいと言っていますか? –

答えて

0

変更

<xs:pattern value="\d{9}"/> 

<xs:pattern value="\d{9}|"/> 

9桁の数字または空の文字列を許可します。

<xs:simpleType name="phone-number"> 
    <xs:restriction base="xs:token"> 
     <xs:pattern value="\d{9}|"/> 
    </xs:restriction> 
    </xs:simpleType> 

上記の定義は、文法的に正しく、トークンからなることができます:

注意はまた、XMLおよびXSDは、あなたがphone-numberのあなたの定義には、いくつかの追加の変更を行う必要がありますので、大文字と小文字が区別されます9桁または文字なし。

最終的な注記:xs:tokenは、先頭と末尾のスペースを許可します。あなたがそれらを必要としない場合はxs:stringを使用してください。

関連する問題