2011-11-08 9 views
6

XMLファイルが自動的にフォーマットされた後に、XMLファイルの検証に問題があります。バリデーションはバリデーションを行う前に文字列をトリミングしません。これは.NETのXML検証の実装におけるバグですか、これは受け入れられる動作ですか?これが受け入れられた場合、私の意見では2つのXMLファイルが同等であるため、このようなケースはどのように処理されるのが普通です。検証前にスキーマの検証で文字列をトリミングしない

マイXSD:

<xs:schema ...> 
    ... 
    <xs:simpleType name="ItemTypeData"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="ItemA" /> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 

私のXMLをフォーマットする前に(検証に合格):

... 
<ItemType>ItemA</ItemType> 
... 

フォーマット後(検証が失敗した):

... 
<ItemType> 
    ItemA 
</ItemType> 
... 

答えて

3

あなたのバリデータが正しく動作しています、スキーマが定義されている方法を考えてください。あなたは、そのような自由をコンテンツで取るフォーマッタを停止する必要があるか、またはスキーマを変更する必要があります。たとえば、ItemTypeDataをxs:tokenではなくxs:tokenの制限にすることによって(xs:tokenでは先頭と末尾の空白が考慮されます重要ではない)。

+0

ありがとうございました! xs:tokenは私が探していたものです。 –

関連する問題