CDATA
CDATA estas ŝlosil-vorto en la sintakso de XML-lingvoj. Ĝi estas mallongigo de la angla character data (signaj datenoj) kaj indikas, ke bloko de signoj ("sekcio") estas nuraj datenoj sen iu XML-sintaksa signifo.
Uzo
CDATA-sekcio en XML-dokumento komenciĝas per la naŭ signoj
<![CDATA[ kaj finiĝas per la tri signoj ]]>
. Ĉi tiuj signoj ne apartenas al la datenoj, nur la signoj inter ili. Ekzemple en la sekcio
<![CDATA[eĥoŝanĝo]]>
la vorto eĥoŝanĝo konsistigas la datenojn. Ĉar la signotrio
]]>
finas CDATA-sekcion, ĝi evidente ne povas esti parto de la datenoj.
Efiko
En CDATA-sekcio la specialaj funkcioj de la signoj < kaj & de XML estas nuligitaj. Kiam ĉi tiuj signoj estas parto de la datenoj, ne necesas kodi ilin en la formo < kaj &, kiel kutime en XML. Eĉ male, se oni tiel kodus ilin, la tuta kodo aperus en la datenoj.
CDATA do estas maniero komforte uzi la du specialajn signojn en XML-datenoj. Tio estas aparte bonvena, kiam XML-teksto aperu kiel XML-datenoj, ekzemple kiam <html> estu ne etikedo, sed vico el ses signoj, aŭ kiam ĉ estu ne la litero ĉ, sed vico el ses signoj.
La efiko de CDATA-sekcio estas identa al la menciita kodado de < kaj &. Jenaj du formoj de dateno-kodado do estas funkcie identaj:
| Kodata teksto (datenoj): | La signoj < kaj & havas specialan signifon en XML-dokumentoj. |
| Kodado de < kaj &: | La signoj < kaj & havas specialan signifon en XML-dokumentoj. |
| Uzo de CDATA-sekcio: | <![CDATA[La signoj < kaj & havas specialan signifon en XML-dokumentoj.]]>
|
Kialoj por uzado
Kiel montras la ĉi-supra ekzemplo, la efiko de CDATA-sekcio estas atingebla ankaŭ per aliaj rimedoj. Kiam en CDATA-sekcio multfoje okazas la du specialaj signoj < kaj &, ĝi ŝparas iom da amplekso, sed kutime la ŝparo ne estas granda. La precipa motivo por uzi CDATA-sekcion estas, ke homoj pli facile povas legi la datenojn.
Ĉar CDATA-sekcio komenciĝas per la signo <, kiu jam estas speciala en XML, ĝi ne enkondukas pliajn restriktojn en XML.
Problemoj
Rikureco
CDATA-sekcioj ne povas aperi rikure; tia sekcio ne povas enhavi alian. Pli ĝenerale, la sekci-fina simbolo
]]>
neniel povas aperi ene de CDATA-sekcio; ĝia unua apero finas la sekcion. Por noti datenojn, kiuj enhavas
]]>
, oni kutime disigas la datenan blokon en plurajn CDATA-sekciojn tiel, ke la du ortaj krampoj estas en unu sekcio kaj la >-signo en la sekva.
La signaro
Por noti en XML-dokumento signon, kiu ne estas en la uzata signaro, eblas meti la unikodan numeron nnnn de la signo en la formo &#nnnn; (kun nnnn en dekuma formo, aŭ kun &#x en deksesuma formo). En CDATA-sekcio tio ne eblas, ĉar & tie ne estas speciala. Tio signifas ke en CDATA-sekcio povas okazi nur signojn el la signaro uzata de la XML-dokumento. Se, ekzemple, tiu signaro estas ISO 8859-5, ĉar la dokumento uzas precipe cirilajn signojn, esperantaj ĉapelitaj literoj ne povas esti en CDATA-sekcioj.
Uzado de unikoda kodoprezento (UTF-8, UTF-16) evitigas tiajn problemojn.
CDATA kiel atribut-tipo
La uzo de CDATA-sekcioj estas distingenda de alia signifo, kiun CDATA havas ne en XML-dokumentoj, sed en DTD-dokumentoj, kiuj priskribas la strukturon de certaj XML-lingvoj. Tie CDATA signifas, ke iu atributo de iu etikedo estas datenoj sen difinita strukturo. Por noti ke la etikedo <mesagho> havas atributon temo sen difinita strukturo, oni skribas:
<!ATTLIST mesagho temo CDATA #IMPLIED>
La etikedo tiam estas uzebla en jena formo:
<mesagho temo="mesaĝo pri ĉio kaj nenio">Saluton, …<mesagho>
Vidu ankaŭ
- XML
- Dokumento-Speco-Difino (DTD)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.