"How to add style to XML" का अनुवाद
मूल संस्करण: http://www.w3.org/Style/styling-XML
अनूदित संस्करण: यह संस्करण
अनुवादक: भावात्मज सेठ w3 hindi Dirje Welry
यह W3c पृष्ठ का अनुवाद है और इस मे कुछ त्रुटियाँ हो सकती हैं. W3C वेबसाइट पर अंग्रेजी मूल दस्तावेज ही आधिकारिक है।

XML शैली को कैसे जोडऐ

(यह पृष्ठ सीएसएस शैली पत्रक का उपयोग करता है)

शैली

इस्तेमाल करना चाहिए?

विदेशी

सीएसएस

एम्बेडेड

XSL

CSS2 सिफारिश XML के साथ सीएसएस के प्रयोग पर एक संक्षिप्त ट्यूटोरियल शामिल CSS2 पर XML (§ 2.2 )में शैली के लिए सरकारी लिखा विनिर्देशन के लिए तैयार नहीं था. यहाँ वही है जो कि ट्यूटोरियल निहित होनी चाहिए. ध्यान दें कि उदाहरण सीएसएस, ख का उपयोग करें अधिकांश मामलों शैली के नियम भी XSL में लिखा जा सकता है

बाह्य शैली पत्रक

Tip: try it in your browser

HTML लिंक के तत्व को बाह्य शैली पत्रक से लिंक है, लेकिन नहीं प्रारूप पर आधारित प्रत्येक XML जैसे एक तत्व होगा. अगर कोई उपयुक्त तत्व है,तुम अब भी XML-stylesh के माध्यम से बाह्य शैली पत्रक संलग्न कर सकते हैं इस तरह प्रसंस्करण अनुदेश:

<?xml-stylesheet href="my-style.css" type="text/css"?>
... rest of document here...

इस प्रसंस्करण अनुदेश (PI) दस्तावेज़ के पहले टैग के सामने आना चाहिए.सीएसएस पाठ  की आवश्यकता नहीं है......, लेकिन यह ब्राउज़र में मदद करता है: अगर यह सीएसएस का समर्थन नहीं करता, उसे पता है वह यह फ़ाइल डाउनलोड नहीं होगा .

बस HTML के लिंक के साथ तत्व के रूप में,वहाँ एकाधिक XML-stylesheet PIs और वे गुण के प्रकार, मध्यम और शीर्षक सेट हो सकता है हो सकता है.

यहाँ एक बड़ा उदाहरण है. चलो मान हम तीन शैली पत्रक है, एक कि प्रत्येक तत्व का मूल प्रदर्शन प्रकार सेट इनलाइन,ब्लॉक आइटम, सूची, आदि.) और दो अलग अलग हैं कि प्रत्येक सेट रंग और मार्जिन. पिछले दो लोगों को एक दूसरे विकल्प हैं, और दस्तावेज़ का पाठक जो एक को चुन सकते हैं उपयोग करें. को छोड़कर जब दस्तावेज़, मुद्रित जिस स्थिति में हम सिर्फ पिछले शैली का उपयोग करना चाहते है. यहाँ आम शैली पत्रक है:

/* common.css */
INSTRUMENT { display: inline }
ARTICLE, HEADLINE, AUTHOR, PARA { display: block }

इस विकल्प के शैलियों में से एक है, एक फाइल में बुलाया "modern.css ":

/* modern.css */
ARTICLE { font-family: sans-serif; background: white; color: black }
AUTHOR { margin: 1em; color: red }
HEADLINE { text-align: right; margin-bottom: 2em }
PARA { line-height: 1.5; margin-left: 15% }
INSTRUMENT { color: blue }

और यहाँ दूसरे से एक है, नाम "classic.css":

/* classic.css */
ARTICLE { font-family: serif; background: white; color: #003 }
AUTHOR { font-size: large; margin: 1em 0 }
HEADLINE { font-size: x-large; margin-bottom: 1em }
PARA { text-indent: 1em; text-align: justify }
INSTRUMENT { font-style: italic }

इन तीन शैली से जुड़ी यह चादर के साथ XML दस्तावेज़ इस तरह दिखता है:

<?xml-stylesheet href="common.css" type="text/css"?>
<?xml-stylesheet href="modern.css" title="Modern" media="screen"
  type="text/css"?>
<?xml-stylesheet href="classic.css" alternate="yes"
  title="Classic" media="screen, print" type="text/css"?>
<ARTICLE>
  <HEADLINE>Fredrick the Great meets Bach</HEADLINE>
  <AUTHOR>Johann Nikolaus Forkel</AUTHOR>
  <PARA>
    One evening, just as he was getting his 
    <INSTRUMENT>flute</INSTRUMENT> ready and his
    musicians were assembled, an officer brought him a list of
    the strangers who had arrived.
  </PARA>
</ARTICLE>

अधिक जानकारी के लिए, W3C सिफारिश "XML दस्तावेज़ों के साथ स्टाइल शीट्स जोड़" के देखें

एंबेडेड शैली पत्रक

Tip: try it in your browser

HTML तत्व एक शैली है शैली पत्रक (एस HTML फाइल में)  सीधे  एम्बेडेड की अनुमति देता है, एक बाहरी फ़ाइल के लिए  ही  आवश्यकता के बिना. कुछ मामलों में यह आसान है, खासकर जब शैली पत्रक बहुत उस दस्तावेज़ के लिए विशिष्ट है .

IMost XML-आधारित स्वरूप एक तत्व नहीं है, लेकिन एक ही होगा PI कि बाह्य शैली पत्रक के लिंक भी शैली पत्रक है कि दस्तावेज़ में ही अंतर्निहित हैं बिंदु किया जा सकता है. फरवरी 2006 के रूप में, वहाँ अब भी कर रहे हैं और यह कोई औपचारिक विनिर्देशन के साथ मौजूद तकनीकी समस्याओं. के लिए

<?xml-stylesheet href="#style" type="text/css"?>
<ARTICLE>
  <EXTRAS id="style">
    INSTRUMENT { display: inline }
    ARTICLE, HEADLINE, AUTHOR, PARA { display: block }
    EXTRAS { display: none }
  </EXTRAS>
  <HEADLINE>Fredrick the Great meets Bach</HEADLINE>
  ...
</ARTICLE>

इस मामले में सीएसएस" उपस्थित होना चाहिए विशेषता, अन्यथा ब्राउज़र(या अन्य प्रोग्राम) के लिए शैली पत्रक भाषा लगता है . XML-stylesheet PI अब एक बाह्य शैली पत्रक को अंक नहीं, लेकिन खुद को दस्तावेज़ एक तत्व के लिए. यह तत्व एक आईडी गुण है कि लिंक के लक्ष्य के रूप में कार्य करता द्वारा पहचान की है. (विशेष रूप से XML स्वरूप पर निर्भर करता है, आईडी गुण नाम कुछ और हो सकता है ; कुछ प्रारूप में एक बिल्कुल उपयुक्त गुण नहीं हो सकता.)

अनसुलझी समस्याओं

W3C सिफारिश "XML दस्तावेज़ों के साथ 'स्टाइल शीट्स" जोड़ है एम्बेडेड शैली पत्रक के मामले को परिभाषित नहीं, हालांकि यह एक उचित एक्सट्रपलेशन लगता है यूआरएल टुकड़े की अनुमति ). हालांकि यह एक उचित एक्सट्रपलेशन लगता है यूआरएल टुकड़े की अनुमति (शुरू करने के साथ एक "#", वहाँ अभी भी अनसुलझी समस्याओं और कोई प्रकाशित विनिर्देशन है ". समस्याएं इस प्रकार हैं

  1. क्योंकि सर्वर से एम्बेडेड शैली पत्रक अलग से डाउनलोड नहीं है, सर्वर ब्राउज़र शैली पत्रक का क्या स्वरूप नहीं बता सकता है. इसलिए, प्रकार की विशेषता इस मामले में आवश्यक है. यह अपरिभाषित क्या हुआ अगर विशेषता है लोप होता है: शैली पत्रक है नजरअंदाज कर दिया? क्या यह सीएसएस मान लिया? वहाँ कुछ एल्गोरिथ्म के लिए भाषा निर्धारित है?
  2. सबसे XML-आधारित स्वरूप में, एक टुकड़ा पहचानकर्ता एक पूरा तत्व की पहचान , एक तत्व के विषय में. लेकिन एक शैली पत्रक कि <ARTICLE> के साथ शुरू होता है सीएसएस सही नहीं , तो ऐसा लगता है कि वहाँ के लिए एक अतिरिक्त नियम है कि एक टुकड़ा पहचानकर्ता एक .शैली पत्रक PI अंक में एक तत्व की सामग्री के लिए करते थे, तत्व ही नहीं की जरूरत है
  3. इसी प्रकार अपरिभाषित क्या अगर वहाँ तत्व की ओर इशारा किया है कि अंदर बच्चे तत्व हैं होता है, यह है. शैली पत्रक क्या सभी तत्वों concatenated के सभी सामग्री से मिलकर बनता है? बस पहले तत्व की सामग्री? या यह एक त्रुटि है और पूरे तत्व नजरअंदाज कर दिया है?
  4. ऊपर के उदाहरण में, यूआरएल ही दस्तावेज में कहा. तथ्य यह है कि ब्राउज़र के लिए उस URL पर देखो जहां सब इंगित करता है कि उसे पता है कैसे पार्स और संकेत शैली तत्व खोजने का शायद सक्षम है. लेकिन अब बताते हैं कि एक बाहरी दस्तावेज़ का एक टुकड़ा एक यूआरएल पर .विचार आदेश में सफलतापूर्वक शैली पत्रक पुनः प्राप्त करने के लिए, ब्राउज़र पहले डाउनलोड और बाहरी दस्तावेज़ पार्स करना होगा और तब .निकालें और शैली पत्रक को पार्स लेकिन जिस प्रकार की विशेषता ही है और इस तरह दो ब्राउज़र में से एक के प्रकार नहीं पता कर सकते हैं देता हैअगर यह शैली पत्रक का उपयोग कर सकता है. यह भी तय है कि प्रकार बाहरी दस्तावेज़ या शैली में यह अंतर्निहित पत्र के के प्रकार देता है गुण नहीं है  .
  5. शैली पत्रक PI सामान्य XML "के साथ, अर्थात्" सबसे अधिक उपयोगी है, . शैली पत्रक के लिए धन्यवाद, यह कम से कम कुछ प्रदर्शन कर सकेंगे .अच्छी स्वरूप जाने जाते हैं, ऐसे एसवीजी, SMIL या XHTML के रूप में, प्रतिपादन है कि  क्या एक शैली पत्रक निर्दिष्ट कर सकते हैं बाहर जाने के लिए अपने स्वयं के नियम .लेकिन वहाँ अन्य चीजें हैं जो एक ब्राउज़र भी पता नहीं है: जब सामान्य XML दस्तावेज़ के रूप में किया जाता है करता है विशेष रूप से, यह पता नहीं है जो गुण गुण आईडी हैं .वहाँ एक विशेषता के लिए एक W3C सिफारिश है xml नाम: आईडी और यदि दस्तावेज़ उस नाम का गुण होता है , यह बहुत है कि यूआरएल टुकड़ा अंक उन में से एक होने की संभावना है. लेकिन अगर ऐसी कोई गुण हैं, अन्य ब्राउज़र का मतलब है कि कौन कौन से गुण आईडी हैं कोशिश करनी चाहिए. यदि दस्तावेज़ के शीर्ष पर एकDOCTYPE है और ब्राउज़र के लिए DTD कि यह अंक पुनः प्राप्त करने में सक्षम है, कि DTD विशेषता निर्दिष्ट करेगा. लेकिन ब्राउज़रों DTDs पढ़ें या एक DOCTYPE नहीं हो सकता हैं और नहीं भी हो सकता है     
  6. एक टुकड़ा आईडी केवल एक ही तरीका है एक दस्तावेज़ में एक तत्व की बात है. एक अन्य W3C सिफारिश XPointers परिभाषित एक दस्तावेज़ में पहचान पत्र के लिए की आवश्यकता के बिना तत्वों की पहचानजिम्मेदार बताते हैं. लेकिन समझ XPointers फ़िलहाल नहीं शैली पत्रक PI का उपयोग ब्राउज़रों के लिए एक आवश्यकता है और इस तरह यह तो ब्राउज़र XPointers व्याख्या कर सकते हैं यह स्पष्ट नहीं है अगर वे करसकते हैं या यदि उन्हें नजरअंदाज करना चाहिए      

इनलाइन शैली

HTML भी शैली के लिए व्यक्तिगत तत्व सीधे शैली की विशेषता के माध्यम से जुड़ा होना अनुमति देता है. सबसे  Class attributesXML-आधारित दस्तावेज़ स्वरूप एक ऐसी विशेषता नहीं है, यद्यपि कुछ सुविधाओं को मॉड्यूल (अनुमती दे सकते हैं HTML से) करेंगे दस्तावेज़ के अंदर इस्तेमाल किया जाएगा.

कक्षा विशेषताएँ

Tip: try it in your browser

वर्ग विशेषता है कि आप HTML में तत्वों की subclasses बनाने के लिए अनुमति देता है भी होने की संभावना नहीं के लिए XML के अधिकांश में उपलब्ध हो दस्तावेज प्रारूपों आधारित है. बेशक, सीएसएस की मदद से आप   .किसी भी विशेषता पर आधारित तत्वों में ही नहीं, वर्ग चुनें, लेकिन वाक्यविन्यास कम सुविधाजनक है

यहाँ एक उदाहरण है. यदि वहाँ एक वर्ग के गुण और दस्तावेज़ स्वरूप को परिभाषित करता है कि यह HTML में  की तरह काम करती है, हम डॉट के साथ संकेतन का उपयोग कर सकते हैं. (इसलिए, इस विशिष्ट उदाहरण के  काम नहीं होगा क्योंकि <doc> एक प्रारूप कि ब्राउज़रों कि कुछ वर्ग के रूप में जानते हैं) नहीं है

<?xml-stylesheet href="#s1" type="text/css"?>
<doc>
  <s id="s1">
    s { display: none }
    p { display: block }
    p.note { color: red }
  </s>
  <p>Some text... </p>
  <p class="note">A note... </p>
</doc>

यदि दस्तावेज़ स्वरूप निर्दिष्ट है कि वर्ग एक subclass पैदा नहीं करता, तो आप "[]"के साथ अब चयनकर्ताओं का उपयोग करेंगे है:

<?xml-stylesheet href="#s1" type="text/css"?>
<doc>
  <s id="s1">
    s { display: none }
    p { display: block }
    p[class~=note] { color: red }
  </s>
  <p>Some text... </p>
  <p class="note">A note... </p>
</doc>

अगर कोई वर्ग विशेषता नहीं है, लेकिन वहाँ तो हम उपयोग करते हैं, विशेषता चयनकर्ताओं "[]"  अभी भी लागू कर सकते हैं 

try it in your browser

<?xml-stylesheet href="#s1" type="text/css"?>
<doc>
  <s id="s1">
    s { display: none }
    p { display: block }
    p[warning="yes"] { color: red }
  </s>
  <p>Some text... </p>
  <p warning="yes">A note... </p>
</doc>

Created 29 February 2000 (last update: $Date: 2010/03/03 23:06:24 $)