2013-11-14 5 views
13

मैं XML को एक्सएमएल में बदलने के लिए एक्सएलएसटी फाइलों का उपयोग कर रहा हूं।एक्सएमएल गैर ब्रेकिंग स्पेस

अंतरिक्ष का वैध प्रतिनिधित्व क्या है?

<xsl:text> </xsl:text> 
<xsl:text>&nbsp;</xsl:text> 
<xsl:text>&#160;</xsl:text> 
+2

पहला सामान्य स्थान है, ' ' मान्य एन्कोडिंग नहीं है, और बाद वाला ' ' – freefaller

उत्तर

12

एक्सएमएल के अलावा &lt;, &gt;, &quot;, &apos; और &amp; किसी भी नामित संस्थाओं जरूरत नहीं है।

अन्य सभी पात्रों को वर्बैटिम का प्रतिनिधित्व किया जा सकता है, बशर्ते आपने एक्सएमएल घोषणा में सही एन्कोडिंग घोषित की हो (उदा। <?xml version="1.0" encoding="..." ?>)। यूटीएफ -8 घोषित करना वैकल्पिक है, क्योंकि यह वैसे भी डिफ़ॉल्ट है।

दूसरे शब्दों में: विशेष रूप से किसी भी चरित्र से बचने के लिए कोई जरूरत नहीं है कहीं भी जब तक यह XML सिंटैक्स नियमों टूट जाएगा नहीं छोड़ा जाएगा छोड़ने (जैसे < या & होगा)।

आप निश्चित रूप से किसी भी चरित्र से बचने के लिए स्वतंत्र हैं।

इन अभ्यावेदन जहाँ तक जिसके परिणामस्वरूप दस्तावेज़ का संबंध है के बराबर हैं:

<foo>&#x54;&#x65;&#x73;&#x74;&#xa0;&#x54;&#x65;&#x73;&#x74;</foo> 

<foo>&#84;&#101;&#115;&#116;&#160;&#84;&#101;&#115;&#116;</foo> 

<foo>Test&#160;Test</foo> 

<foo>Test Test</foo><!-- given that the " " really is char code 160 --> 

ध्यान दें कि आप कर सकते हैं का DOCTYPE का उपयोग कर कस्टम नामित संस्थाओं (nbsp की तरह) की घोषणा।

<!DOCTYPE xsl:stylesheet [ 
    <!ENTITY nbsp "&#160;"> 
]> 

लेकिन तथ्य यह है कि एक्सएमएल किसी भी चरित्र को स्वीकार करता है जो शायद ही कभी जरूरी है। विशेष रूप से जब आप एक उचित उपकरण का उपयोग कर दस्तावेज़ बनाते हैं, जैसे कि DOM API।

+0

का वैध एन्कोडिंग अंतिम दो समकक्ष है? एक स्थान गैर-ब्रेकिंग-स्पेस के समान नहीं है ... कम से कम मैं इसे कैसे समझता हूं – freefaller

+2

यह एसओ के सामान्यीकरण में एक गड़बड़ है। मैंने निश्चित रूप से एक एनबीएसपी चरित्र का उपयोग किया लेकिन यह चुपचाप एक साधारण जगह से बदल जाता है। एक जवाब में एक वास्तविक एनबीएसपी स्टोर करना असंभव प्रतीत होता है। – Tomalak

4

जैसा कि यह प्रश्न से संबंधित है, उन सभी इकाइयों को जोड़ें जो आपके * .xls स्टाइल शीट के DOCTYPE को पार्स त्रुटियों का कारण बन रहे हैं।

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [ 
    <!ENTITY nbsp "&#160;"> 
]> 
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

अब आप सामान्य रूप से &nbsp; का उपयोग कर सकते हैं।

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