2011-09-14 13 views
86

लघु प्रश्नएक्सएमएल केस-संवेदी है?

एक्सएमएल केस-संवेदी है?

अब सवाल

उदाहरण के लिए:

<Shirt color="Red"/> 

विशेषता रंग प्रकार string जो मान्य रंग (Red, Blue और Green) का एक सेट हो सकती है है।

एक्सएमएल को मान्य करने के लिए, मैं निम्नलिखित XSD प्रयोग किया है:

<xs:simpleType name="ColorType"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Red"/> 
     <xs:enumeration value="Blue"/> 
     <xs:enumeration value="Green"/> 
    </xs:restriction> 
    </xs:simpleType> 

एम आई उम्मीद लाल, नीला और ग्रीन के विभिन्न मामले रूपों को स्वीकार करने के? या एक्सएमएल व्यापक रूप से केस-संवेदी के रूप में स्वीकार किया जाता है?

+3

हां, यह है। एक्सएमएल के बारे में पहली चीजों में से एक सीखता है। – Oded

उत्तर

67

लघु उत्तर:

हाँ - एक्सएमएल केस संवेदी है।

लंबे समय तक उत्तर:

:

यह व्यापक रूप से केस संवेदी के रूप में स्वीकार किया जाता है, फिर भी अगर आप लचीलेपन अधिक स्वीकार करना चाहते हैं, नीचे दिए गए प्रश्न है, जो केस-संवेदी enumerations होने की चर्चा पर एक नज़र XML Schema Case Insensitive Enumeration of Simple Type String

+5

लंबा उत्तर: आपको एक XML अनुप्रयोग लिखने से रोकने के लिए कुछ भी नहीं है जो मामूली स्थिति है। लेकिन यह उम्मीद या सामान्य नहीं होगा। –

13

XSD 1.1 के साथ आप एक अभिकथन का उपयोग कर एक केस-संवेदी गणन को प्राप्त कर सकते हैं:

<xs:simpleType name="RGB"> 
    <xs:restriction base="xs:string"> 
    <xs:assert test="lower-case($value) = ('red', 'green', 'blue')"/> 
    </xs:restriction> 
</xs:simpleType> 

एक्सएसडी 1.1 सैक्सन और जेर्सेस के हालिया रिलीज में समर्थित है।

+0

बस एक्सएसडी 1.1 का उपयोग करने के बारे में जागरूक रहें, वर्तमान समय में यह केवल एक डब्ल्यू 3 सी सिफारिश है - एक्सएसडी 1.1 सत्यापन के साथ जेरस बीटा राज्य में एक स्टैंडअलोन आर्टिफैक्ट है, और एक्सएसडी 1.1 जेडीके द्वारा समर्थित नहीं है, यहां तक ​​कि सबसे हालिया भी नहीं 1.8। जहां तक ​​मुझे पता है, यह जेडीके 1.9 के लिए भी योजनाबद्ध नहीं है। आप इस तरह जेडीके से निर्मित एक्सएसडी 1.1 के आधार पर जेएक्सबी जैसी उन्नत एक्सएमएल प्रौद्योगिकियों का उपयोग नहीं कर सकते हैं। –

+0

हां, आपको सावधान रहना होगा, लेकिन @ रेने के उत्तर की योग्यता की आवश्यकता है। सबसे पहले, "बस एक डब्ल्यू 3 सी सिफारिश": ठीक है, तो एक्सएसडी 1.0 है। "अनुशंसा" वह है जो डब्ल्यू 3 सी एक पूर्ण, अंतिम, अनुमोदित नमूना कहता है। हां, यह सच है कि वर्तमान में एक्सएसडी 1.1 के केवल तीन कार्यान्वयन हैं (सैक्सन, जेर्सेस और अल्टोवा), और यह एक कारक है जिसे आपको ध्यान में रखना चाहिए। लेकिन जेडीके में जो कुछ भी है, उसे वापस न रखें - जेडीके ने नवीनतम डब्ल्यू 3 सी मानकों के लिए लंबे समय से समर्थन छोड़ दिया है (उदाहरण के लिए यह XPath 2.0 का भी समर्थन नहीं करता है) लेकिन अंतराल को भरने के लिए बहुत से तृतीय-पक्ष पुस्तकालय हैं। –

+0

बेशक यह इस्तेमाल की जाने वाली तकनीक पर निर्भर करता है। यदि आप निम्न-स्तरीय पार्सिंग और कोड लागू करते हैं तो आप किसी तृतीय-पक्ष पार्सर लाइब्रेरी का उपयोग कर सकते हैं (XSD 1.1 के लिए Xerces अभी भी बीटा है, उसी Xerces संस्करण के दो अलग-अलग कलाकृतियों हैं!)। जेएक्सबी - @ माइकल के उदाहरण के लिए: क्या आप एक तृतीय पक्ष जेएक्सबी कार्यान्वयन जानते हैं या एक्सएसडी 1.1 का उपयोग करने के लिए व्युत्पन्न करते हैं, इस प्रकार, "विकल्प" का उपयोग करके उदाहरण के लिए कक्षाएं उत्पन्न करते हैं? वैसे भी, यह इयान पर उनकी जरूरतों के आधार पर चयन करने के लिए है। –