2011-05-23 14 views
16

में सरणी परिभाषा एक्सएमएल में, मैं पूर्णांक की सरणी कैसे घोषित करूं?एक्सएमएल

मैं निम्नलिखित के रूप में यह घोषणा कर सकते हैं:

<numbers type="array"> 
    <value>3</value> 
    <value>2</value> 
    <value>1</value> 
</numbers> 

लेकिन वहाँ इस तरह सरल तरीका है हो सकता है?

<numbers [3,2,1]></numbers> 

उत्तर

15

दूसरा तरीका वैध एक्सएमएल नहीं है; क्या आपका मतलब <numbers>[3,2,1]</numbers> था?

यदि ऐसा है, तो पहले को प्राथमिकता दी जाती है क्योंकि आपको सरणी तत्व प्राप्त करने की आवश्यकता होती है, कुछ एक्सएमएल हेरफेर है। दूसरे पर आपको सबसे पहले < संख्या > तत्व का मान एक्सएमएल मैनिपुलेशन के माध्यम से प्राप्त करने की आवश्यकता है, फिर किसी और चीज का उपयोग करके [3,2,1] टेक्स्ट को पार्स करें।

या यदि आप वास्तव में कुछ कॉम्पैक्ट प्रारूप चाहते हैं, तो आप JSON (जो "मूल रूप से" सरणी का समर्थन करता है) का उपयोग करने पर विचार कर सकते हैं। लेकिन यह आपकी आवेदन आवश्यकताओं पर निर्भर करता है।

+0

हाँ, मैं JSON या YAML उपयोग करने के लिए खुशी होगी, लेकिन मैं XML का उपयोग करने के लिए है । यह मेरे लिए थोड़ा अजीब लग रहा है कि मुझे और टैग के साथ मेरी सरणी की प्रत्येक संख्या को लपेटना है ... यह संख्या सरणी जैसी सरल चीज़ के लिए एक बहुत ही जटिल वाक्यविन्यास है। – Nick

+4

तुम हमेशा इस तरह के के रूप में, छोटे कुछ में उन्हें लपेट सकते हैं, लेकिन एक्सएमएल अपनी संक्षिप्तता ... – carlosfigueira

8

नहीं, कोई आसान तरीका नहीं है। आप केवल type=array खो सकते हैं।

<numbers> 
    <value>3</value> 
    <value>2</value> 
    <value>1</value> 
</numbers> 
+1

मैं इसे प्रकार विशेषता दूर करने के लिए एक अच्छा आईडीई है नहीं लगता है के लिए जाना जाता है। यदि ' 'में केवल एक तत्व शामिल है, तो यह स्पष्ट नहीं है कि यह एक सरणी है। जब प्रकार को सरणी के रूप में निर्दिष्ट किया जाता है तो आपके एक्सएमएल पार्सर को असंगत पार्सिंग को रोकने के लिए ऑब्जेक्ट के साथ क्या करना है, यह बताना आसान होगा। – aross

1

जैसा कि इसके नाम के रूप में "संख्या" यह स्पष्ट है कि यह संख्या की एक सूची है तो नंबर की एक सरणी ... विशेषता प्रकार ... की कोई जरूरत नहीं हालांकि मैं निर्दिष्ट करने के सिद्धांत की तरह है ... एक प्रकार विशेषता में क्षेत्र के प्रकार ...

1

एक बार मैं इस तरह के एक दिलचस्प निर्माण देखा है:

<Ids xmlns:id="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
     <id:int>1787</id:int> 
</Ids>