2011-11-08 23 views
6

मान्य करने से पहले स्ट्रिंग को ट्रिम नहीं कर रहा है, मुझे स्वचालित रूप से स्वरूपित होने के बाद, मेरी XML फ़ाइल को सत्यापित करने में कोई समस्या है। प्रमाणीकरण इसे सत्यापित करने से पहले स्ट्रिंग को ट्रिम नहीं करता है। क्या यह .NET के XML सत्यापन के कार्यान्वयन में एक बग है या यह स्वीकार्य व्यवहार है? यदि यह व्यवहार स्वीकार किया जाता है, तो इस तरह के मामलों को आम तौर पर कैसे संभाला जाता है, क्योंकि मेरी राय में, दो एक्सएमएल फाइलें बराबर होती हैं।स्कीमा सत्यापन

मेरे XSD:

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

मेरे एक्सएमएल स्वरूपण से पहले (सत्यापन गुजरता है):

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

स्वरूपण के बाद (सत्यापन विफल हो):

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

उत्तर

3

आपका सत्यापनकर्ता सही ढंग से बर्ताव कर रही है, जिस तरह से स्कीमा परिभाषित किया गया है। आपको या तो सामग्री के साथ इस तरह की स्वतंत्रता लेने वाले फ़ॉर्मेटर को रोकने की जरूरत है, या आपको स्कीमा को बदलने की जरूरत है - उदाहरण के लिए आइटम टाइप टाइप को xs के प्रतिबंध को बनाकर: xs के बजाय टोकन: स्ट्रिंग (xs: टोकन में, अग्रणी और पिछला सफेद स्थान माना जाता है तुच्छ)।

+0

बहुत बहुत धन्यवाद! xs: टोकन वह है जिसे मैं ढूंढ रहा था। –

संबंधित मुद्दे