2011-11-08 80 views
6

在自動格式化後驗證我的XML文件時出現問題。在驗證之前,驗證不會修整字符串。這是在.NET的XML驗證的實現中的錯誤還是這種被接受的行爲?如果它是公認的行爲,那麼這種情況通常如何處理,因爲在我看來,這兩個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:string(在xs:token中,前導和尾隨空白被考慮微不足道)。

+0

非常感謝! xs:token是我一直在尋找的。 –