क्या XML तत्वों के लिए एक मानक नामकरण सम्मेलन है? [बन्द है]


96

XML दस्तावेज़ों के लिए कोई मानक, वास्तविक या अन्यथा है? उदाहरण के लिए जो टैग लिखने के लिए "सबसे अच्छा" तरीका है?

<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />

इसी तरह अगर मेरे पास एक विशेषता के लिए एक एन्यूमरेटेड मूल्य है जो बेहतर है

<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>

2
तकनीकी रूप से, आप <my.tag /> का भी उपयोग कर सकते हैं। कुछ संदर्भों में एक अच्छा विचार नहीं हो सकता है ...
फील्हो

1
का डुप्लीकेट stackoverflow.com/questions/1074447/...
इगोर Brejc

ऑनलाइन कई "मानक" पाए जाते हैं ..
user2864740

जवाबों:


46

मुझे संदेह है कि सबसे आम मूल्यों को ऊँचा किया जाएगा - अर्थात

<myTag someAttribute="someValue"/>

विशेष रूप से, रिक्त स्थान कुछ ग्लिच का कारण बनते हैं यदि कोड-जनरेटर (यानी [से] वस्तुओं के लिए xml को क्रमबद्ध करें) के साथ मिलाया जाता है, क्योंकि कई भाषाएं रिक्त स्थान के साथ एनम की अनुमति नहीं देती हैं (दोनों के बीच मानचित्रण की मांग करते हैं)।


35
हम्म ... सबसे अच्छा जवाब ... मुझे लगता है कि यह एक सभ्य जवाब है, लेकिन यह सिर्फ एक राय है। किसी प्रकार का संदर्भ अच्छा होगा।
हमीश ग्रुबीजन

4
मैं सहमत नहीं हूं, मैं ऊंट मामले के साथ एक्सएमएल देखने के लिए इस्तेमाल नहीं कर रहा हूं।
राफा

मुझे पता है कि यह एक पुराना उत्तर है, लेकिन अधिकांश नए Microsoft XML मैंने इस प्रारूप की पसंद से असहमत हैं। लेकिन तब IIS को डॉट.नामिंग पसंद है ..
user2246674

4
जैसा कि सभी ने उल्लेख किया है कि यह व्यक्तिगत है, लेकिन मैं आपके दृष्टिकोण का अनुसरण करता हूं क्योंकि मैं हमेशा XML का उपयोग करते हुए XMLSchema को परिभाषित करता हूं, और XMLSchema इस दृष्टिकोण का अनुसरण करता है। w3.org/2001/XMLSchema.xsd । मेरे लिए प्रोग्रामिंग भाषाओं से इसका कोई लेना-देना नहीं है। हम XML का उपयोग करते हैं क्योंकि यह एक अंतर-संचालन इंटरफ़ेस मानक है। प्रोग्रामिंग भाषाएं केवल एक कार्यान्वयन विवरण हैं और प्रत्येक भाषा का अपना सम्मेलन है।
डैन कार्टर

मेरे 2 सेंट - मैंने कैमलकेस, और सभी लोअरकेस को देखा है; शायद ही कभी सभी ऊपरी (पुराने HTML), और मैंने लोअर-केस देखा है। मैं कभी भी ऊंट को देखकर याद नहीं कर सकता। मैं कैमलकेस या लोअरकेस पसंद करता हूं। विशेषताएं, हालांकि, मैं सभी लोअरकेस को देखना चाहता हूं।
किट

30

XML नामकरण नियम

XML तत्वों को इन नामकरण नियमों का पालन करना चाहिए:

    - Element names are case-sensitive 
    - Element names must start with a letter or underscore
    - Element names cannot start with the letters xml(or XML, or Xml, etc) 
    - Element names can contain letters, digits, hyphens, underscores, and periods 
    - Element names cannot contain spaces

किसी भी नाम का उपयोग किया जा सकता है, कोई शब्द आरक्षित नहीं है (एक्सएमएल को छोड़कर)।

बेस्ट नेमिंग प्रैक्टिस

    - Create descriptive names, like this: <person>, <firstname>, <lastname>.
    - Create short and simple names, like this: <book_title> not like this: <the_title_of_the_book>.
    - Avoid "-". If you name something "first-name", some software may think you want to subtract "name" from "first".
    - Avoid ".". If you name something "first.name", some software may think that "name" is a property of the object "first".
    - Avoid ":". Colons are reserved for namespaces (more later).
    - Non-English letters like éòá are perfectly legal in XML, but watch out for problems if your software doesn't support them.

नामकरण शैलियाँ

XML तत्वों के लिए कोई नामकरण शैली परिभाषित नहीं है। लेकिन यहाँ कुछ आमतौर पर उपयोग किया जाता है:

    - Lower case    <firstname> All letters lower case
    - Upper case    <FIRSTNAME> All letters upper case
    - Underscore    <first_name>    Underscore separates words
    - Pascal case   <FirstName> Uppercase first letter in each word
    - Camel case    <firstName> Uppercase first letter in each word except the first

संदर्भ http://www.w3schools.com/xml/xml_elements.asp


13

मेरे लिए, यह एक प्रोग्रामिंग भाषा के लिए कोड शैली की चर्चा करने जैसा है: कुछ एक शैली के लिए बहस करेंगे, अन्य एक विकल्प की रक्षा करेंगे। मैंने जो एकमात्र सहमति देखी, वह है: "एक शैली चुनें और लगातार रहें"!

मैं बस इतना ध्यान देता हूं कि बहुत सी XML बोलियाँ सिर्फ लोअरकेस नाम (SVG, Ant, XHTML ...) का उपयोग करती हैं।

मुझे नियम विशेषताओं में "कोई स्थान नहीं मिला"। किसी तरह, यह बहस को भेजता है "विशेषताओं में क्या रखा जाए और पाठ के रूप में क्या रखा जाए?"।
शायद ये सबसे अच्छे उदाहरण नहीं हैं, लेकिन विशेषताओं में रिक्त स्थान का उपयोग करते हुए कुछ प्रसिद्ध एक्सएमएल प्रारूप हैं:

  • XHTML, विशेष रूप से वर्ग विशेषता (आप दो या दो से अधिक कक्षाएं लगा सकते हैं) और निश्चित रूप से alt और शीर्षक विशेषताएँ।
  • एसवीजी, उदाहरण के लिए पथ टैग की डी विशेषता।
  • शैली विशेषता के साथ दोनों ...

मैं पूरी तरह से अभ्यास के खिलाफ तर्कों को नहीं समझता (केवल कुछ उपयोगों पर लागू होता है) लेकिन यह कम से कम कानूनी है, और काफी व्यापक रूप से उपयोग किया जाता है। कमियों के साथ, जाहिरा तौर पर।

ओह, और आपको ऑटो-क्लोजिंग स्लैश से पहले एक स्थान की आवश्यकता नहीं है। :-)


रिक्त स्थान के खिलाफ तर्क है, और यह केवल इसलिए है क्योंकि यह विशेष रूप से प्रश्न में पूछा गया था, यदि मान गणना की जाती है तो पार्सिंग का समर्थन करने के लिए, न कि कई भाषाएं रिक्त स्थान के साथ गणना का समर्थन करती हैं, फिर भी हममें से कई जो XML का उपयोग C / C + ++, C # में करते हैं। , या जावा (मैं जिन भाषाओं का उपयोग करता हूं, लेकिन उन तक सीमित नहीं है) अक्सर गणना के लिए विशेषता मानों को मैप करेगा। हम तो बस एक शाब्दिक एक नक्शा / शब्दकोश (या जावा और सी # के मामले में आसान) पार्स कर सकते हैं। अंतत: मैं मानता हूं कि यह एक मानक के बजाय उत्साह की बात प्रतीत होती है। मैं बस "जब रोम में दर्शन" का पालन करता हूं।
किट

12

मैं तत्व नामों के लिए टाइटलकेस और विशेषताओं के लिए कैमसेल का पक्ष लेता हूं। या तो कोई स्थान नहीं।

<AnElement anAttribute="Some Value"/>

एक तरफ के रूप में, मैंने एक्सएमएल में बेस्ट प्रैक्टिस के लिए एक त्वरित खोज की, और इस दिलचस्प लिंक के साथ आया: एक्सएमएल स्कीमा: बेस्ट प्रैक्टिस


8

मैं लोअरकेस या कैमलकेस टैग्स का पक्ष लेता हूं और चूंकि विशेषताओं को आमतौर पर डेटा मानों को प्रतिबिंबित करना चाहिए - सामग्री नहीं - मैं एक ऐसे मूल्य पर चिपकूंगा जिसका उपयोग चर नाम के रूप में किया जा सकता है जो किसी भी मंच / भाषा में रुचि हो सकती है, अर्थात रिक्त स्थान से बचें , लेकिन अन्य दो रूप ठीक हो सकते हैं


वेरिएबल / फंक्शन नामों के बारे में सोचने के लिए +1
एटेस गोरल

@downvoter: कृपया मुझे अपने आप को समझाने का शिष्टाचार रखें।
अन्नकूट

8

यह व्यक्तिपरक है, लेकिन अगर एक तत्व टैग में दो शब्द हैं, तो <my_tag>कोई विभाजक का उपयोग करने के बजाय शब्दों (जैसे ) के बीच अंडरस्कोर जोड़कर पठनीयता को बढ़ाया जा सकता है । संदर्भ: http://www.w3schools.com/xml/xml_elements.asp । तो w3schools के अनुसार इसका उत्तर होगा:

<my_tag attribute="some value">

मान को अंडरस्कोर या विभाजक का उपयोग करने की आवश्यकता नहीं है, क्योंकि आपको विशेषता मानों में रिक्त स्थान की अनुमति है लेकिन तत्व टैग नामों में नहीं।


2
+1 क्योंकि आपने एक संदर्भ का हवाला दिया है जिसमें "बेस्ट नेमिंग प्रैक्टिस" सेक्शन है (सिर्फ राय नहीं)
फ्यूहरमैनेटर

2
@Fuhrmanator "संदर्भ" स्वयं एक राय है, भले ही यह कुछ औचित्य प्रदान करता है। यह किसी भी तरह से एक मानक नहीं है - और (भले ही यह उससे बहुत कम भयानक था) मैं "संदर्भ" के रूप में w3schools की सिफारिश या उपयोग नहीं करता हूं । बहुत अधिक मूल और व्यापक स्रोत हैं।
user2864740

@ user2864740 जैसे? अधिक मूल और व्यापक स्रोत प्रदान करने से पहले आपने अपनी टिप्पणी समाप्त कर दी। मेरी +1 की बात यह थी कि ओपी ने मानकों के लिए कहा था लेकिन अधिकांश उत्तर राय प्रदान करते हैं।
फ्यूहरमैनेटर

यह उत्तर केवल राय प्रदान करता है , w3schools का लिंक अप्रासंगिक है और ऐसा नहीं हटाता है। जहां तक ​​मानकों, कार्यान्वयन के नियमों ( आरएसएस के अनुसार ) या संगठन के नियमों ( ओएजीआई के रूप में ) को देखें - किसी स्तर पर "मानक" केवल एक विशेष आवेदन / व्यावसायिक स्तर पर लागू किया जाता है। W3schools लिंक केवल बहुत ही अस्पष्ट अर्थों में अपनी राय / सर्वोत्तम अभ्यास प्रदान करता है (यह कुछ सुझाव प्रदान करता है और कहता है कि "यहां कुछ तरीके से काम किया गया है")।
user2864740

यही है, बस एक लिंक सहित एक जवाब (या जुड़ा हुआ संसाधन) आधिकारिक नहीं करता है।
user2864740

7

कई दस्तावेज केंद्रित XML बोलियाँ निम्न केस बेसिक लैटिन और डैश का उपयोग करती हैं। मैं उसी के साथ जाता हूं।

कोड जनरेटर्स जो XML को प्रोग्रामिंग लैंग्वेज आइडेंटिफ़ायर से सीधे मैप करते हैं, भंगुर होते हैं, और भोले ऑब्जेक्ट क्रमांकन (जैसे XAML के अपवाद के साथ) को पोर्टेबल डॉक्यूमेंट स्वरूपों में टाला जाना चाहिए; सर्वोत्तम पुन: उपयोग और सूचना के दीर्घायु के लिए XML को डोमेन से मेल खाना चाहिए, कार्यान्वयन नहीं।


3

rss शायद दुनिया में सबसे अधिक खपत होने वाले xml स्कीमा में से एक है और यह ऊंटनी है।

यहाँ है: http://cyber.law.harvard.edu/rss/rss.html

दी गई यह स्कीमा में कोई नोड गुण नहीं है, लेकिन सभी नोड तत्व नाम ऊंट हैं। उदाहरण के लिए:

lastBuildDate के प्रबंधकर्ता


2

मैं आमतौर पर कोड के अन्य भागों में समान नामकरण सम्मेलन के साथ XML नामकरण सम्मेलन को संरेखित करता हूं। कारण यह है कि जब मैं एक्सएमएल को ऑब्जेक्ट में लोड करता हूं तो इसके गुण और तत्व नाम को उसी नामकरण सम्मेलन के रूप में संदर्भित किया जा सकता है जो वर्तमान में प्रोजेक्ट में उपयोग किया जाता है।

उदाहरण के लिए, यदि आपकी जावास्क्रिप्ट कैमलकेस का उपयोग करती है तो आपका एक्सएमएल कैमसेल का भी उपयोग करता है।


1
जबकि इंट्राप्रोजेक्ट काम के लिए उपयोगी है, यह जल्दी से टूट जाता है जब XML भाषा-अज्ञेय इंटरचेंज प्रारूप के रूप में प्रयोग किया जाता है ..
user2864740

तो आपकी परियोजना के घटक सुसंगत हैं, लेकिन आप इस परियोजना के अनुरूप मानक को कैसे डिजाइन करते हैं?
Gqqnbig

2

माइक्रोसॉफ्ट ने दो सम्मेलन किए:

  1. के लिए विन्यास , माइक्रोसॉफ्ट का उपयोग करता CamelCase । Visual Studio कॉन्फ़िग फ़ाइल को देखें। VS2013 के लिए, इसे इसमें संग्रहीत किया गया है:

    C: \ Program Files (x86) \ Microsoft विज़ुअल स्टूडियो 12.0 \ Common7 \ IDE \ devenv.exe.config

उदाहरण:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
  1. Microsoft अपने XAML के लिए अपरकेस का भी उपयोग करता है। मुझे लगता है कि यह HTML से अंतर करने के लिए है (जो लोअरकेस का उपयोग करता है)।

उदाहरण:

<MenuItem Header="Open..." Command="ApplicationCommands.Open">
    <MenuItem.Icon>
        <Image Source="/Images/folder-horizontal-open.png" />
    </MenuItem.Icon>
</MenuItem>

1

कोई स्पष्ट सिफारिश नहीं है। W3C की अन्य अनुशंसाओं के आधार पर, XHTML के लिए , मैंने लोअरकेस का विकल्प चुना है:

4.2। तत्व और विशेषता नाम निचले मामले में होने चाहिए

XHTML दस्तावेज़ों को सभी HTML तत्व और विशेषता नामों के लिए निम्न स्थिति का उपयोग करना चाहिए। यह अंतर आवश्यक है क्योंकि XML केस-सेंसिटिव है जैसे <li> और <LI> अलग-अलग टैग हैं।


0

XML नामकरण नियम

XML तत्वों को इन नामकरण नियमों का पालन करना चाहिए:

  • नामों में अक्षर, संख्या और अन्य वर्ण हो सकते हैं
  • नाम एक नंबर या विराम चिह्न वर्ण से शुरू नहीं हो सकता
  • नाम xml (या XML, या Xml, आदि) अक्षरों से शुरू नहीं हो सकते
  • नामों में रिक्त स्थान नहीं हो सकते किसी भी नाम का उपयोग किया जा सकता है, कोई भी शब्द आरक्षित नहीं है।

स्रोत: W3 स्कूल


किस प्रकार के नाम संभव हैं, इसका अस्पष्ट वर्णन बहुत कम मार्गदर्शन देता है कि किन संभावित नामों का उपयोग किया जाना चाहिए।
सैमुअल एडविन वार्ड

हालांकि वे क्या संभव है की आधार रेखा को परिभाषित करते हैं - सही है?
पेटीएम

10
ज़रूर, लेकिन यह ऐसा है जैसे अगर किसी ने पूछा "मुझे अपने बच्चे का नाम क्या देना चाहिए ताकि वे स्कूल में न उठें" और आपने जवाब दिया "अच्छी तरह से, यहां लगता है कि मनुष्यों की एक सूची उत्पादन करने में सक्षम है।"
सैमुअल एडविन वार्ड

हाँ, लेकिन htat वास्तव में सवाल नहीं था, है ना? क्योंकि सवाल था: "क्या XML तत्वों के लिए एक मानक नामकरण सम्मेलन है?" और "क्या XML दस्तावेज़ों के लिए कोई मानक, वास्तविक तथ्य या अन्यथा है?" तो यह एक उत्तर सही है? एक जो प्रश्न का उत्तर देता है और न केवल एक सामान्य प्रश्न की व्याख्या की धारा।
याचिकाकर्ता

3
यह केवल एक उत्तर है यदि आप उन दो वाक्यों के बाद शेष प्रश्न को अनदेखा करते हैं। आपने उत्तर देने का प्रयास नहीं किया 'जो "सबसे अच्छा है' या 'जो बेहतर है'।
सैमुअल एडविन वार्ड

0

मैं एक अच्छे दृष्टिकोण के लिए बहुत कुछ खोज रहा हूं, यह धागा और कुछ अन्य भी पढ़ रहा हूं और मैं हाइफ़न का उपयोग करने के लिए मतदान करूंगा ।

वे व्यापक रूप से ARIA ( https://developer.mozilla.org/de/docs/Web/Barrierefreiheit/ARIA ) में उपयोग किए जाते हैं जो कई स्रोत कोड में देखे जा सकते हैं और इसलिए आम हैं। जैसा कि पहले से ही यहां बताया गया है, वे निश्चित रूप से अनुमत हैं, जिसे यहां भी समझाया गया है: एक्सएमएल तत्व नाम का उपयोग करना

एक साइड बेनिफिट के रूप में: सीएसएस के साथ संयोजन में HTML लिखते समय, आपके पास अक्सर ऐसी कक्षाएं होती हैं जिनके नाम डिफ़ॉल्ट रूप में भी विभाजक के रूप में हाइफ़न का उपयोग करते हैं। अब, यदि आपके पास कस्टम टैग हैं जो CSS कक्षाओं का उपयोग करने वाले टैग के लिए सीएसएस कक्षाओं या कस्टम विशेषताओं का उपयोग करते हैं, तो कुछ इस तरह है:

<custom-tag class="some-css-class">

अधिक सुसंगत है और पढ़ता है - मेरी विनम्र राय में - की तुलना में बहुत अच्छा है:

<customTag class="some-css-class">

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.