[Filipino] Kadalasang-katanungan tungkol sa Extensible Markup Language

Seksyon 1: Mga Pangunahing Kaalaman

Pangkalahatang Impormasyon ukol sa XML

Q 1.1: Ano ang XML?

Ito ang Extensible Markup Language.

Ang XML ay tinatawag ding Extensible Markup Language. Pinapaganda nito ang pag-andar ng Web sa pamamagitan ng pagbibigay sayo ng mga paraan upang matukoy mo ang iyong impormasyon sa mas tumpak, madaling sabayan, at madaling ibagay na pamamaraan.

Ito ay tinatawag na extensible dahil hindi ito fixed format tulad ng HTML (na isang mag-isang predefined na markup na language). Sa halip, ang XML ay isang metalanguage - isang salita na nagtutukoy ng ibang pang mga salita (language) - na hinahayaan kang gumawa ng sarili mong markup language para walang hanggang klase ng mga dokumento. Kaya itong gawin XML dahil ito'y nakasulat sa SGML, isang internasyunal na pamantayang metalanguage para sa mga text document markup (ISO 8879).

Q 1.2: Ano ang isang markup language?

Isa itong paraan upang matukoy kung ano ang meron sa isang dokumento.

Ang isang markup language ay grupo ng mga salita at mga simbolo na pangtukoy sa pagkakakilanlan or silbi ng mga bahagi ng isang dokumento (halimbawa, 'this is a paragraph', 'this is a heading', 'this is a list', 'this is the caption of this figure', etc). Ang mga programs ay maaaring gumamit ng markup gamit a stylesheet upang maiba ang anyo ng dokumento bilang pang-output sa screen, pang-print, tunog, bidyo, Braille o data pormat na maaaring muli iproseso.

May ibang markup na language (mas lalo na ang mga ginagamit sa mga word processors) na tinutukoy lamang ang itsura sa halip na ('this is italics', 'this is bold', 'this has 3mm space below', etc), kaya ang mga sistemang ito ay maaari lamang gamitin pang-display, at hindi maaaring gamiting muli sa ibang bagaya.

Ang XML ay minsan tinutukoy bilang "naglalarawan sa sarili" (self-describing) dahil ang mga pangalan ng mga elemento ng markup ay kayang irepresenta ng kung ano man ang nilalaman nila. (halimbawa,titulo, kabanata, link, etc).

Q 1.3: Para saan ang XML?

Ang XML ay para sa pagkakakilanlan, paglilipat, at pag-iimbak (storage).

Sa kabila mga naunang pagsubok, ang mga browser ay hindi pumapayag sa ibang klase SGML maliban sa HTML (kahit may mga plugins). Pinapayagan ng mga browsers (lalo pang hinihikayat) ang authors na sirain ang kanilang HTML upang mas lalong mapadali. Nagsanhi ito nang malawak na paggamit sa HTML, ngunit napigilan ang pag-unlad at pagbuo nito ng halos isang dekada na nagsanhi rin ng imposibleng paraan upang ma-program ito ng maayos. Ginagampanan ng XML ang pagkukulang na ito sa pagsunod sa mga panuntunan at sa paggawa ng mga simpleng alituntunin na mas simple pa sa SGML.

Ngunit ang XML ay hindi lamang para sa mga Web pages: ang totoo niya nag bihira itong ginagamit mag-isa para sa mga web pages dahil may mga browser na di kaya ibigay ang tamang suporta sa pormat. Madalas na gamit sa XML ay:

Pagtutukoy sa Impormasyon

Maaari mong tukuyin ang iyong markup upang matukoy mo ang mahahalagang pangalan para sa iyong gamit pang-impormasyon.

Imabakan ng impormasyon

Dahil ang XML ay madali ilipat at bukas sa lahat, maaari kang mag-imbak impormasyon sa lahot anong plataporma. Dahil sumusunod ito sa internasyonal na pamantayan, mananatili itong madaling gamitin bilang data format.

Istraktura ng impormasyon

Ang istraktura ng XML ay kayang 'pamugaran' (nest), kaya pwede itong gamitin upang imbakan at kumilala ng kahit anong klase ng impormasyong hirerkiya mas lalo na ang mahahaba at malalalim o kumplikadong mga dokumento o pinagkukuhanan ng data, kaya tamang-tama ito para sa isang information-management back-end sa pagseserve sa ng Web. Isa ito sa mga karaniwang Web applications, na may sistemang pagbabagong-anyo upang pagsilbihan itong bilang HTML.

 

Paglilimbag

Ang orihinal na layunin ng XML na tinukoy sa simula ng itong seksyon. Ang pagsasama-sama ng tatlong paksa (pagkilala, pag-imbak at istraktura) ay nagpapahiwatig na posible na makuha lahat ng benepisyo ng matatag na pamamahala sa mga dokumento at kontrol (sa XML) at paglimbag sa Web (bilang HTML) pati na rin sa papel (bilang PDF) at iba pang pormat (halimbawa, Braille, Audio, etc) mula sa iisang source na dokumento sa paggamit ng nararapat na stylesheet.

Pagmemensahe (messaging) at Paglipat ng data (data transfer)

Ang XML ay palagiang ginagamit para sa pagsasara ng impormasyon upang idaan ito sa gitna ng iba't-ibang sistema ng kompyuter na kung wala ay hindi makakapagkumunyon dahil sa kanilang pagmamay-ari o mga sikretong data na pormat. Sa pagbibigay ng lingua franca para sa mga pakakakilanlan ng mga data at istraktura, ang XML ay kayang magbigay ng komun na 'envelope' para sa komunikasyong prosesong pangloob (messaging).

Serbisyo sa Web

Mula sa nabanggit, kasama narin ang gamit nito sa mga browser, datang pwede iproseso gamit ang makina ay pinagpapalit-palit sa pagitang ng dalawang consenting na sistema, kumpara noon na dapat ay maunawaan rin ng mga tao (HTML). Serbisyong pangpanahon, e-commerce na mga sites, blog newsfeed, AJaX sites, at libo-libong pang mga data-exchange na serbisyo tulad ng mga smartphone apps ay gumagamit ng XML para sa pagmamanage ng data at paglilipat-lipat, at ng web browser o ng app para magdisplay at makisalamuha.

Q 1.4: Ano ang SGML?

Standard Generalized Markup Language, ISO 8879:1986

Ang SGML ay ang Standard Generalized Markup Language (ISO 8879:1986), na isang internasyunal na pamantayan sa pagtukoy ng markup upang matukoy ang istratktura ng iba't-ibang klase ng elektronik na dokumento. Eto ang isang SGML FAQ mula kay David Megginson sa http://math.albany.edu:8800/hm/sgml/cts-faq.html; at ang SGML na web pages ni Robin Cover sa http://www.oasis-open.org/cover/general.html. Para sa maikling buod at listahan ng online at print na mapagkukunan, tingnan sa http://wiht.link/SGML-intro. Tingnan rin ang 'Not the SGML FAQ' ni Joe English sa http://www.flightlab.com/~joe/sgml/faq-not.txt.

Ang SGML ay napakalaki, malakas, at kumplikado. Sa loob ng dalawang dekada ay ginamit ito sa mga mabibigat na trabaho sa industriya at komersyal na gawain at maraming kadalubhasaan at mga software na lumaki kasaama nito na karamihan ay pwede na para XML.

Ang XML ay isang magaan at maliit na bersyon ng SGML na mayroon mga kaunti pero tamang-tama lang na pagkakapareho upang maging kapaki-pakinabang ngunit tinaggal ang mga opsyonal na mga feature na nagsasanhi sa pagiging kumplikado ng SGML na iprograma para sa isang Web environment.

Q 1.5: Ano ang HTML?

HyperText Markup Language, RFC 1866, ang lengguwahe ng mga Web pages.

Ang HTML ay ang HyperText Markup Language(originally RFC 1866, now HTML 4.01), na nagsimula bilang maliit na application ng SGML para sa Web, na sinimulan ni Tim Berners-Lee sa CERN noong 1989–90.

Orihinal nitong tinukoy ang napakasimpleng klase ng report-style na dokument, na may section na headings, talata, listahan, mga talahanayan, at mga ilustrasyon, at mga kaunnting elementong pang-impormasyon, ngunit mayroon lamang kaunting elementang pang-presentasyon (Flynn, 1995), dagdag mo pa ang mga hypertext at multimedia. Tingnan ang mga tanong sa extending HTML.

Ang kasalukuyang W3C na rekomendasyon ay ang XML na bersyon ng HTML, XHTML; at ang mas mobilo at mas media-aware na klase, ang HTML5. Mayroong hiwalay na HTML at XHTML na FAQ na pinananatili ni Steven Pemberton sa http://www.w3.org/MarkUp/2004/xhtml-faq.

Q 1.6: Ano ang ginagawa ng mga pamantayan na ito?

Lahat ng ito ay sinusuportahan ang XML, at ang XML naman ay sumusuporta sa iba.

Ang orihinal na pamantay ay ang Standard Generalized Markup Language, ISO 8879:1986. Isa itong ISO standard, kaya pang buong mundo at pang internasyunal (tingnan sa ibaba). Ang XML mag-isa ay hindi isang ISO standard: di nito kinakailangan dahil ito ay, a) isang application profile ng SGML, pinapagana ng 'WebSGML Adaptation' Technical Corrigendum (2) to ISO 8879; at b) isang itong W3C Recommendation, ibig sabihinn ay dumaan ito sa pormal na proseso na halos kapareho ng standardisasyon.

Sa isang banda, ang HTML ay mayroong ISO reference standard, ISO/IEC 15445:2000(E), ngunit ang HTML ay isang concrete markup language, isang aplikasyon ng SGML at XML, samantala ang XML at SGML ay mga metalanguages na ginagamit para tukuyin ang iba pang markup na languages.

Ang ibang XML application tulad DocBook at TEI ay may kanya-kanyang proseso para sa padedevelop. Ang DocBook ay pinamantayaan ng DocBook Technical Committee ng OASIS (Organization for the Advancement of Structured Information Standards); ang TEI Guidelines are pinamumunuhan ng TEI Technical Council of the Text Encoding Initiative.

Ang proseso ng pagbuo ng isang standard document interchange specification ay mahaba at kumplikado. Nagsulat ng sanaysay si Ken Holman tungkol sa kung paano sinusuportahan ng OASIS technical committee process ang mga grupo ng miyembro galing sa industriya o ekonomyang sektor sa paggawa ng pagpapalitang dokumento para sa negosyo.

Q 1.7: Mayroon bang XML na bersyon ang HTML?

Oo, ang XHTML mula sa W3C

Ang W3C Recommendation ay isang XHTML na isang 'a reformulation of HTML 4 in XML 1.0'. Itong spesipikasyon na ito ay tintukoy ang HTML bilang XML na applicationn, ang nagbibigay ng tatlong DTD na umuugnay sa mga bagay na tinutukoy ng HTML 4.* (Strict, Transitional, and Frameset). Ang semantika ng ibang elemento at ang kanilang mga katangian ay tinutukoy sa W3C Recommendation para sa HTML 4. Ang mga semantikang ito ay nilayon para magbigay ng pundasyon para pangkinabukasang paglalawak ng XHTML. Ang pagkakatugma ng mga kasalukuyang HTML browsers ay posible dahil sa pagsunod ng mga ito sa maikling listahan ng mga patnubay (Tingnan ang W3C site).

Q 1.8: Ano ang HTML5?

Isa itong bagong bersyon ng XHTML para sa interaktibo at mobilong enbiromento.

Upang paganahinn ang XHTML para maging malawakan ang paggamit dito pagdating sa mga interaktibo at handheld na mga enbiromento, ang W3C ay gumawa ng rebisyon ng XHTML na tinawag na HTML5, na mayroong karagdagang elemento, mas maganda pagsuporta para sa multimedia at mobilong aparato, at mayroon itong mas magaan ng modelo pangdokumento.

Mayroong paliwanag mula kay Elliotte Rusty Harold, at ang HTML5 FAQ mula sa WhatWG.

Ang HTML5 kasama ng CSS3 ay kinikilala na ngayon bilang pamantayan para sa web development.

Q 1.9: Hindi ba pare-pareho lamang ang XML, SGML, and HTML?

Hindi, sapagkat ang SGML at XML ay metalanguages. Ang HTML, XHTML, at HTML ay mga aplikasyon ng dalawa.

Hindi masyado; SGML ay orihinal na wika, at ginamit na ito sa pagtukoy ng libo-libong mga dokumento sa iba't-ibanng gawain pangtao, mula sa pagkasalin ng mga of ancient Irish manuscripts hanggang sa mga technical documentation for stealth bombers, at mula sa patients' medical and clinical records hanggang sa mga musical notation. Ang SGML ay isang malaki at napakakumplikado, ngunit, isa itong overkill para sa mga kumon na gawaing pang-opisina.

Ang XML ay isang dinaglat na bersyon ng SGML, upang mapadali ang paggamit nito sa Web, mapadali ang pagtukoy ng iyong sariling mga dokumento at mas madali para sa mga programmer na makagawa ng mga programa na gagamitin ito.

Tinatanggal nito ang lahat ng kumplikado at hindi masyadong ginagamit na opsyon ng SGML kapalit ng mga benepisyo tulad ng mas madaling gawan ng application, mas madali intindihin, at mas tugma sa Web. Ngunit nakabase parin ito sa SGML, at ang mga XML na files ay kinakailangan parin iproseso sa kaparehong paraan ng ibang SGML na file. (tingnan ang mga question sa XML software).

Ang HTML, XHTML, at HTML5 ay mga XML application lamang na madalas gamitin sa Web. Mas makakatulong sa mga teknikal na magbabasa na isipin na ang XML bilang SGML - imbis na HTML++.

Q 1.10: Sino ang responsable sa XML?

Ang W3C

Isang rekomendasyon ang XML ng World Wide Web Consortium (W3C), at ang paggawa ng mga spesipikasyon ay pinangangasiwaan ng XML Working Group. Isang Special Interest Group ng mga co-opted contributor at eksperto mula sa iba't-ibang hanay ay nagbigay ng mga komento at mga pagsusuri mula email.

Ang XML ay isang pangpublikong format: di ito pagmamay-ari na kahit na sinong kumpanya, ngunit ang mga miyembro ng WG at SIG ay nagrerepresenta sa mga kumpanya lalo sa pananaliksik at mga akademiyang insitusyon. Ang v1.0 specification ay tinanggap ng W3C bilang Recommendation noong Peb 10, 1998.

Q 1.11: Bakit napakaimportante ng XML?

Nilalagpasan nito ang kakayahan at kahinaan ng HTML at kalakasan ng SGML.

Tinatanggal nito ang dalawang hadlang na pumipigil sa pag-asenso ng Web:

  1. Sa isang, di makadjust na klase ng dokumento(HTML) na naabuso na ng sobra upang magawa ang mga gawain di ginawa para dito;
  2. Ang pagkakumplikado ng SGML, kung saan ang syntax nagbibigay ng malalakas na kapangyarihan ngunit napahirap iprogram na mga opsyon.
Ang XML ay nagbibigay daan para sa mga mabilisang pag-angkop ng mga user-defined na types ng dokumento. Nagbibigay ito ng matibay, walang nagmamay-ari, matiyaga, at maaasahan na file format para pag-imbak at paglipat ng mga teksto at data kahit sa Web o sa labas nito; tinatanggal nito ang kumplikadong sitwasyon sa SGML, pinapadali ang ang pagprogram dito.

Q 1.12: Bakit di na lamang palawakin pa ang HTML?

Masyado ng naabuso ang HTML ng mga proprietary na mga add-ons.

Ang HTML ay masyado ng pinabigat ng mga dosenang interesante ngunit di naman bagay ng mga imbensyon galing sa iba't-ibang tagagawa, dahil nagbibigay lang ito ng isang paraan upang tukuyin ang iyong impormasyon.

Ang XML ay nagbibigay daan sa mga grupo ng tao at mga organisasyon na makagawa ng sariling markup na aplikasyon para sa magpapalit ng impormasyon sa kanikanilang mga dominyo (musika, kimika, eletronika, magakyat sa burol, pinansya, surfing, petroleum geology, lingguwistika, pagluluto, pagtatahi, istellar na kartograpiya, kasaysayan, pag-iinhinyero, pag-alaga ng kuneho, matematika, talaangkanan,etc).

Ang HTML mula ng ito'y ginnawaw ay ngayon lumagpas na limitasyon ng kanyang pakinabang bilang tagapagtukoy ng impormasyon, at ang XHTML at HTML5 naman ay magpapatuloy na magbibigay tulong para sa mga nilalaman nilang kaya nilang irepresenta, maraming bagong applikasyon ang nangangailangan ng mas matibay at madaling mag-adjust sa mga imprastratura.

Q 1.13: Pinapalitan ba ng XML ang HTML?

Hindi.

Hindi. Hindi pinapalitan mismo ng XML ang HTML. Sa halip, nagbibigay ito ng mga alternatibong na pwedeng magbigay daan sayo upang makagawa ka ng sariling mong mga markup na elemento. Ang HTML ay inaasahang mananatiling kumon na ginagamit sa Web, at sa mga kasalukuyang bersyon ng HTML (XHTML at HTML5) ay nasa XML syntax.

Ang XML ay dinisenyo upang mapadali ang pagsulat ng mga processing na mga software kaysa sa SGML, kung saan binase ang orihinal na HTML.

Q 1.14: Bakit ko dapat gamitin ang XML?

Isa itong matibay, madali gamitin, at libreng format para pagtukoy ng impormasyon, pag-imbak at paglilipat.

Ito ang mga dahilan kung bakit mo dapat gamitin ang XML (walang pagkakasunod-sunod) Hindi lahat ito ay babagay sa iyo, at baka mayroon kang ibang rason na hindi masabi dito (pakisabi sa editor ng FAQ na ito).

  • Ang XML ay pwedeng magamit bilang magtukoy at pagkilala sa mga impormasyo ng eksakto at ng malinaw, sa paraan na ang mga kompyuter ay pwede iprogram upang 'maintindihan ang iyong impormasyon' (imanipula na animo nakakaintindi ang mga ito).
  • Ang XML ay nagbibigay daan sa mga dokumento na may pare-parehong klase na magawa at mahawakan ng hindi pabagu-bago at ng walang kahit anong pagkakamali sa istraktura, dahil nagbibigay ito ng pamantayan na paraan ng pagtukoy, pagkontrol, o pagbibigay daan/pagharang sa mga partikular na mga istraktura ng dokumento. [Paalala: Wala itong kinalaman sa formatting, itsura, o sa mismong teksto o content ng data ng iyong dokumento, ang istraktura lamang nito. Kung gusto mo ng styling o formatting, tingnan ang How do I control the formatting of XML?.]
  • Ang XML ay nagbibigay ng matibay at matiyaga na format para sa mga pagimbak at paglipat ng impormasyon. Matibay dahil nakabase ito sa napatunayan ng pamantayan, nasubukan at naberipika na; matiyaga dahil gumagamit ito plain-text file formats na lalagpasan pa ng mga proprietary na mga binary.
  • Ang XML ay mayroong karaniwan na syntax para sa sistema ng pagmemensahe para sa pagpapalit ng impormasyon sa pagitan ng dalawang application. Noon, ang bawat sistema ng pagmemensahe ay may sari-sariling format at magkakaiba, na sanhi ng pagiginng walang kwenta, magulo, kumplikado, mamahalin. Kapag lahat ay gumamit ng pare-parehong syntax, mas mapapadali ang pagsulat sa mga sistema upang maging mas mabilis at mas maaasahan.
  • Ang XML ay libre. Di lang libre sa bayad, ngunit libre rin sa kahit anong legal na kahit ano. Walang nagmamay-ari nito, kaya walang mamimirata o manghihimasok dito. At wala ka pa dapat bayaran upang magamit ito (maaari ka ring gumamit ng pangkomersyal na software, sa maraming dahilan, ngunit di mo binabayaran ang mismong XML).
  • Ang impormasyon ng XML ay pwede imanipula gamit ang program (gamit ang machine), kaya ang XML na dokumento ay pwede mong pagtagpi-tagpiin mula sa iba't-ibang pinaggalingan, o paghiwa-hiwalayin at gamitin muli sa ibang paraan. Pwede mo itong i-convert sa iba pang format ng walang mawawala sa impormasyon.
  • Ang XML ay hinahayaan kang ihiwalay ang itsura sa mula sa nilalaman. Ang iyong XML na file ay naglalaman ng impormasyon ng iyong dokumento (teksto, data) at kinikilala ang istraktura nito: ang iyong pangangailangan sa format at iba pang pagproseso ay kinikilala ng magkahiwalay sa isang stylesheet o sistemang pangproseso. Ang dalawang ito ay pinagsasama sa pagkalabas upang mai-aplay ang kinakailangan na format ng teksto o datang kinikilala ng istraktura nito. (lokasyon, posisyon, ranggo, pagkakaayos, atbp.)
  • Ang mga Design Goals ay nakalista sa XML Specification.
Q 1.15: Saan pa ko pwede humanap ng iba pang impormasyon tungkol sa XML?

Online at offline na resources.

Online, mayroong XML Specification at ang ancillary documentation makukuha sa W3C; Robin Cover's XML Cover Pages na may kasamang listahan at links sa software; at ang buod at condensed FAQ galing kay Tim Bray; at libo-libong resources sa pag-type ng 'xml' sa Google o ibang search engine.

Para sa offline resources, tingnang ang listahan ng mga libro, artikulo, at mga software para sa XML ni Robin Cover XML Cover Pages (artikulo at libro). Ito ang dapat unang puntahan para sa mga resources.

Para sa mga eksperto, para sa magkonsulta at pagsasanay, tumingin sa XML Guild, na may mga miyembrong binubuo ng mga magagaling na independienteng XML consultanst sa mundo.

Q 1.16: Saan ko pwedeng talakayin ang implementasyon at pagsulong ng XML?

Sa aming mga mailing lists, Usenet newsgroups, web-based na mga bulletin-boards, at IRC channels

Ang pangunahing puntahan ay ang mga web forums at mailinng list. Ang Usenet newsgroups para sa XML ay meron din ngunit bihira na lang gamitin pero subukan parin hanapin sa Google Groups at baka may lumabas pa. Ang IRC network ay ginagamit rin at karamihan sa mga indibidwal na XML na proyekto at programa ay may sariling mga paksa sa mga websites. Marami rin kagayang mga question-and-answer na mga forum sites na pwedeng mahanap gamit ang mga search engines.

Para sa offline support, pumunta sa Where do I find more information about XML? Para sa detalye ng mga pagpupulong at mga summer schools.

  • Pinakaaktibo ang StackOverflow: nakakapagtaka dahil parang walang pang ispesyal na site para sa XML di tulad sa ibang paksa (eg. LATEX). Ang W3Schools XML Forum (walang kinalaman sa W3C) ay maaari ring puntahan, pati narin ang DevShed at CodingForums. Mag-Google search upang makita pa ang ibang di masyadong binibisitang mga forums.
  • Ang pangunahing Usenet newsgroup ay comp.text.xml, ngunit di na ito masyado ginagamit. Itanong sa iyong Internet Provider para sa access sa Usenet, o gumamit na lamang ng web interface tulad ng searchable archive maintained by Google. Kapag di nagbibigay ng newsreading na mga pasilidad ang iyong browser, mag-instal ng iba na kaya o gumamit (mas maganda) ng standalone na newsreader.
  • Ang comp.text.sgml newsgroup ay para sa mga praktikal na mga layunin na di na ginagamit. Ang Microsoft-specific newsgroups ay tinanggal na kapalit ng mga web-based na forums na pinamumunuan mismo ng Microsoft.
  • Ang XML-L ang pinupuntahan para sa pangkalahatang diskusyon: upang mag-subscribe, bumisita sa Web site at pindutin ang join.
  • Para sa mga nabubuong software na komponent para sa XML, mayroong xml-dev mailing list. Magsubscribe sa pamamagitan ng pagsend ng isang-linyang mensahe sa xml-dev-request@lists.xml.org at sabihin lang na SUBSCRIBE. Paalala Para lamang ito sa mga aktibong tagasuporta at kasangkot sa pagbuo para sa XML. Di ito para sa pangkaraniwang impomasyon ng XML. (gamitin ang XML-L na nasa listahan sa itaas).
  • Ang XSL-List ay para sa diskusyon ng XSL (parehong XSLT at XSL:FO). Para sa mga detalye kung pano mag-subscribe, tingnan sa http://www.mulberrytech.com/xsl/xsl-list.
  • May mahabang listahan ng iba pang discussion groups, mailing list, at iba pang forums sa site ni Robin Cover sa http://xml.coverpages.org/lists.html.
Q 1.17: Ano ang pinagkaiba ng XML at C o C++ o Java?

C at Java ay mga writing programs; XML ay para sa pagimbak ng impormasyon.

Ang C at C++ (at iba pang lengguwahe tulad ng FORTRAN, o Pascal, o Visual Basic, o Java atbp.) ay mga programming na mga languages na pwede mong tukuyin ang mga kalkulasyon, aksyon, at mga desisyon na kailangan sundin:

mod curconfig[if left(date,6) = "01-Apr", t.put "April Fool!", f.put days('31102011','DDMMYYYY') - days(sdate,'DDMMYYYY') " more shopping days to Samhain"];

Ang XML ay isang markup specification language kung saan pwede kang magdisenyo ng iba't-ibang paraan upang ma-ilarawan ang mga impomasyon (teksto, data), kadalasan para sa pag-imbak, paglipat, o pagproseso ng mga programa. Wala sinasabi kung ano ang dapat mong gawin sa iyong data (ngunit ang iyong paggamit ng mga elemento ay may pahiwatig kung para saan talaga sila):

<part num="DA42" models="LS AR DF HG KJ" update="2001-11-22"> <name>Camshaft end bearing retention circlip</name> <image drawing="RR98-dh37" type="SVG" x="476" y="226"/> <maker xml:id="RQ778">Ringtown Fasteners Ltd</maker> <notes>An <tool xml:id="GH25"/>angle-nosed insertion tool</tool> is required for the removal and replacement of this part.</notes> </part>

Sa kanyang sarili, ang XML file (kasama na ang HTML) ay walang magagawa. Isa lamang itong data format na naghihintay lamang hanggat pagpatakbo ka ng programa na gagamit sakanya. Tingnan ang mga katanungan sa how to run or execute XML files.

Seksyon 2: Para sa mga kasalukuyang gumagamit

(kasama na rito ang gumagamit ng browser)

Q 2.1: Ano ang aking kailangan kong gawin para magamit ang XML?

Upang mabasa ito: gumamit ng kahit anong modernong web browser; sa paggawa: gumamit ng XML na editor.

Para sa mga karaniwang manggagamit ng Web, wala kang kailangan bukod pa sa browser mo na gumagana sa XML (tingnan sa question about browsers). Tandaan na ang bagong may kaugnay sa XML na mga pasilidad ay palagiang naiimbento at napapatupad. (tingnan sa W3C web site), kaya may mga kasalukuyang mga features ay maaaring di gumana sa mga brower.

Maaaring gumamit ng XML-conformant na brower upang makita ang mga stable na materyal ng XML, tulad ng Shakespeare na pagtatanghal ni Jon Bosak at ang mga molecular experiment ng Chemical Markup Language (CML). May iba pang halimbawa na nakalista sa http://xml.coverpages.org/xml.html#examples, at makikita mong ipinapakilala ang XML (partikular sa impresyon ng XHTML) sa mga lugar na hindi ikakasira ng mga lumang browser.

Kung nais maghanda para sa iyong paggawa ng sariling XML files, tumingin sa mga katanungan sa Authors' Section at Developers' Section, partikular sa mga katanungan sa XML Editors.

Q 2.2: Ano ang itsura ng XML (sa loob)?

Nakatutusok na mga panaklong tulad sa HTML

The pangunahing istraktura ng XML ay kapareho ng ibang application tulad SGML, kasama na ang HTML. Ang mga pangunahing bahagi ay maaaring makita sa mga sumusunod na halimbawa. Ang XML na dokumento ay nagsisimula sa opsyonal na Prolog, na may dalawang (opsyonal) parte:

  1. Ang XML Declaration:
<?xml version="1.0" encoding="utf-8"?>
  1. Ito ang nagsasabi na isa itong XML document at gumagamit ito ng UTF-8 character repertoire (pwede magamit ang iba ngunit ang suporta ay para lamang sa UTF-8) ;
  2. Ang Document Type Declaration kapag ginagamit ang DTD:
<!DOCTYPE report SYSTEM "http://sales.acme.corp/dtds/salesrep.dtd"> kung saan kinikilala ang uri ng dokumento (eto,'report') at sinasabi kung saan naka-imbak ang Document Type Description (DTD);

Ang Prolog ay sinusundan ng Document Instance:

  1. Isang root element, kung saan ang pinakalabas (sa itaas) na elemento (start-tag at end-tag) na pumapalibot sa lahat: ang halimbawa sa ibaba ay ang conversation at ang titlepage;
  2. Pinaghalo-halong elementong pang-descriptive o prescriptive na nakapalibot sa character data content (teksto) at ang opsyonal na mga attributes ('name="value" pairs) sa loob ng start-tags.
Ang mga ay XML na dokumento ay pwedeng maging simple, na may diretsong nested markup na iyong disenyo:

<?xml version="1.0" standalone="yes"?> <conversation> <greeting>Hello, world!</greeting> <response>Stop the planet, I want to get off!</response> </conversation>

O di kaya pwede rin silang maging komplikado, na may Schema o DTD, at maaaring mga internal na (lokal na pagbabago sa DTD sa [square brackets] sa loob ng Document Type Declaration tulad ng ENTITY declaration sa ibaba); at ang kumplikadonng istraktura :

<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE titlepage SYSTEM "http://www.foo.bar/dtds/typo.dtd" [<!ENTITY % active.links "INCLUDE">]> <titlepage xml:id="BG12273624"> <white-space type="vertical" amount="36"/> <title font="Baskerville" alignment="centered" size="24/30">Hello, world!</title> <white-space type="vertical" amount="12"/> <!-- In some copies the following decoration is hand-colored, presumably by the author --> <image location="http://www.foo.bar/fleuron.eps" type="URI" alignment="centered"/> <white-space type="vertical" amount="24"/> <author font="Baskerville" size="18/22" style="italic">Vitam capias</author> <white-space type="vertical" role="filler"/> </titlepage>

O kahit sa gitna ng dalawa: nakadepende kung paano mo tutukuyin ang uri ng iyong dokumento (o ng pinaggamitan mo) at kung saan ito gagamitin. Ang ginawa sa Database o ginawa sa program na mga dokumento ng XML na ginamit para sa e-commerce ay kadalasang hindi formatted dahil sila ay para sa mga makina at hindi para sa pagbasa ng tao, at maaari silang gumamit ng mahahabang mga pangalan at mga bilang, na maraming paulit-ulit at minsan ay walang character mismo, mga bilang sa attribute:

<?xml version="1.0"?> <ORDER-UPDATE AUTHMD5="4baf7d7cff5faa3ce67acf66ccda8248" ORDER-UPDATE-ISSUE="193E22C2-EAF3-11D9-9736-CAFC705A30B3" ORDER-UPDATE-DATE="2005-07-01T15:34:22.46" ORDER-UPDATE-DESTINATION="6B197E02-EAF3-11D9-85D5-997710D9978F" ORDER-UPDATE-ORDERNO="8316ADEA-EAF3-11D9-9955-D289ECBC99F3"> <ORDER-UPDATE-DELTA-MODIFICATION-DETAIL ORDER-UPDATE-XML:ID="BAC352437484"> <ORDER-UPDATE-DELTA-MODIFICATION-VALUE ORDER-UPDATE-ITEM="56" ORDER-UPDATE-QUANTITY="2000"/> </ORDER-UPDATE-DELTA-MODIFICATION-DETAIL> </ORDER-UPDATE>

Q 2.3: Dapat ko bang gamitin ang XML kaysa sa HTML?

Oo kung gusto mo ng mas matibay, tumpak, at matiyaga.

Ang XML ay nagbibigay daan sa mga tagagawa at mga tagabigay na magdisenyo ng kanilang mga sariling document markup sa halip na malimitado sa HTML. Ang mga document types ay pwedeng ipasadya para sa isang application, kaya ang pahirapan na proseso na nararanasan sa HTML ay nawawalan na ng saysay: pwede sabihin ng iyong markup ang nais nitong bigkasin. Isang halimbawa:

<date YYYY-MM-DD="2005-12-26">last Monday</date>

  • Mas maganda ang nilalaman ng impormasyon dahil sa descriptive at hypertext linking abilities ng XML ay mas maganda kumapara sa kung anong meron ang HTML.
  • Kayang magbigay ng XML ng mas maganda pasilidad para sa pagpresenta ng browser at mas maganda ring performance, gamit ang XSLT at CSS na stylesheets;
  • Tinatanggal nito ang mga kumplikasyon sa paggamit ng SGML-format ng HTML (na naging dahilan sa hindi pagpansin at pakasira nila) kapalit ng mas flexible na modelo, kaya mas madaling gumawa ng mga programa para sa XML kumpara sa luma at sirang HTML.
  • Mas madaling makuha ang impormasyon at madaling gamitin muli dahil ang mas flexible na markup ng XML ay pwedeng magamit ng kahit anong XML software imbis na marestrikto sa espisipikong manufacturer na naging kaso sa HTML.
  • Ang mga XML files ay pwede magamit maliban sa Web tulad sa mga kasalukuyang document-handling na mga environment (halimbawa, paglilmbag).
Kung gusto mo na ang iyong impormasyon ay pansamantala lamang, di nagagalaw o hindi na isinangguni, o maikli lamang at simple, at malamang ay kinakailangan ng pagbabago, HTML nga nararapat saiyo.

Q 2.4: May nagpadala sakin ng XML file. Paano ko ito mababasa?

Buksan ito sa isang XML browser o XML na editor.

Kapag ang file ay well-formed o valid na XML, maaaring mo buksan ito gamit ang kahit anong browser na kayang bumukas ng XML (tingnan sa What do I have to do to use XML? At ang Where can I get an XML browser?). Ipapakita nito ang file sa uring di pa nagagalaw habang pinapakita ang mga markup sa isang pormat na pumapayag na itiklop at tanggalin ang tiklop ng nested hierarchy (pindutin ang maliit na plus at minus na simbolo), na magbibigay sayo ng paraan upang may mabasa kahit kaunti.

Kapag may link ang file sa isang XSLT o CSS na stylesheet (at ang stylesheet ay naibigay or pwede mabuksan sa web) ang browser mismo ang bahala upang mabasa ang file sa paraan na madali (ngunit hindi matibay ang pagkapormat kapag nagbabasa gamit ang browser).

Kung ninanais mong mag-edit ng file, kinakailangan mo ng XML editor (tingnan sa XML Editors). Maliban kunng magaling ka sa paggamit ng pointy-bracket markup, wag mong subukan i-edit ang mga XML files gamit ang hindi XML na editor.

Q 2.5: Papaano ko makokontrol ang pagkapormat (formatting) ng XML?

Gamitin ang CSS o ang XSLT2 stylesheet.

Sa HTML, ang default styling ay nakasama mismo sa mga browser dahil ang HTML ay nakasama na sa mga browser. Totoo rin to sa hanay ng XHTML at HTML5. Sa ibang XML, kung saan pwede mong itukoy ang iyong sariling tagset, ang mga browser ay hindi inaasahang manghula o maunang malaman kung anong pangalan ang iyong gagamitin at kung ano ang kanilang ibig sabihin, kaya kinakailangan ng stylesheet kung nais mong makita ang nakapormat na teksto.

Ang Browsers na kaya bumasa ng XML ay tatanggap at gagamit ng CSS na stylesheet hanggat maaari, ngunit maaari ka ring gumamit ng mas malakas na XSLT na stylesheet na lengguwahe upang maibang-anyo ang iyong XML bilang HTML - na kayang basahin ng mga browser (at kaya parin gumamit ng CSS stylesheet ng HTML). Sa ganitong paraan, makukuha mo lahat ng benepisyo sa paggamit ng XML, ngunit di mo na kailangan mag-alala sa iyong mga magbabasa kung kinakailanngan ba nila ng kaalaman sa XML para sakinalang browser.

Ang pagbabagongn ito ay kadalasang ginagawa ng may ari ng dokumento sa kanyang server, kaya maaaring morin makuha HTML na hindi mo namamalayan na isa pala itong XML dati. Posible rin gumamit (ngunit limitado) ng built-in na XSLT 1.0 na transformer sa mga browser na iba, at ang mga server operators ay kaya narin gumamit ng Saxon CE, na pwede ng idownload sa in-browser na bersyon ng XSLT2.

Isinulat ni Mike Brown:

 

Ang XSLT ay isang XML document processing na language na gumagamit ng source code na nakasulat rin sa XML. Ang isang XSLT na dokumento nagsasabi ng mga patakaran para sa XSLT processor kung pano maiinitindihan ang nilalaman ng isang XML na dokumento. Itong mga patakaran na ito ay ang nagsasabi kung pano gagawa ng XML processor ng bagong mala-XML na istrakturang data at kung paano ipapakita ang data - bilang dokumento ng XML, bilang HTML na dokumento, bilang plain text, o di kaya sa ibang pormat.

Ang pagbabagong ito ay magagawa sa loob ng browser o sa server bago maipadala ang file. Ang pagbabago sa browser ay nagtatanggal ng bigat sa proseso ng server ngunit magsasanhi ito ng pag-asa sa browser, na magsasanhi ng pagkabukod sa iyong mga reader. Ang pagbabago sa server ay nagsasanhi ng pagka-asa ng proseso sa browser ngunit ito ay nagbibigay hirap sa server.

Sa kahit anong sistema kung saan ang mga files ay maaaring mabasa ng basta-basta lang ng mga gumagamit, di malalaman ng may-akda kung anong resources (tulad ng font) ang nasa loob ng sistema ng gumagamit, kaya nararapat na ang pag-iingat ay kapareho rin kapag dataing sa HTML kapag ginagamit ang fonts. Upang tawagin ang stylesheet mula sa isang XML file para sa standalone processing ng brower, ilagay ang mga sumusunod na mga deklarasyon:

<?xml-stylesheet href="foo.xsl" type="text/xsl"?> <?xml-stylesheet href="foo.css" type="text/css"?>

(palitan ang URL ng iyong stylesheet). Tingnan sa http://www.w3.org/TR/xml-stylesheet/ para sa buong detalye. Ang Cascading Stylesheet Specification (CSS) ay nagbibigay ng simpleng syntax sa pagtatalaga ng mga stilo sa mga elemento, at naitalaga na sa mga browser.

Si Dave Pawson ay nagpapanatili ng isang komprehensibong XSL FAQ sa http://www.dpawson.co.uk/xsl/, at ang kanyang libro (Pawson, 2002) [the Fox book] ay mabibili sa O'Reilly. Ang XSL ay gumagamit ng XML syntax (ang XSL stylesheet isa lamang na XML file) at may malawakang suporta mula sa mga pangunahing vendor ng mga browser (tingnan ang mga katanungan sa browsers at ibang software). Ang XSL makikita sa dalawang porma:

  • XSL mismo, kung saan ito ay isang pure formatting language, nagpapakita ng Formatted Objects (FO) na file, na kailangan ng text formatter tulad ng FOP, XEP, o iba pa na upang gumawa ng pwedeng iprint (PDF) na output (tingnan rin ang mga Alternatibo sa XSL:FO);
  • XSLT (T para sa Transformation), ay isang lengguwahe na ginagamit para sa pagbabago ng XML papuntang HTML sa loob man ng browser o sa server bago ang paglipat. Kaya rin nitong magbago mula sa isa bokabularyo ng isang XML papunta sa isa pa, at mula sa XML papunta plaintext (na maaaring maging kahit anong pormat, kasama ang RTF at LATEX).
Lahat ng kasalukuyang bersyon ng Microsoft Internet Explorer, Firefox, Chrome, Mozilla, Safari, at Opera ay kayang akuin ang XSLT 1.0 sa loob ng browser. Mag-ingat sa mga lumang browser tulad ng MSIE5.5 na kinakailangan ng post-installation surgery upang matanggal ang matagal ng hindi ginagamit na WD-xsl at palitan ang kasalukuyang XSL-Transform na processor.

WYSIWYG para sa XSL

May mga pagtatangka sa paggawa ng palsipikadong WYSIWYG na editor para sa paggawa ng XSL[T] na stylesheet, ngunit sila'y natigil lamang simpleng pagmamapa lamang sa pagitan ng input na elemento at output na elemento(eg a DocBook para to a HTML p). Ang kahit anong humigit pa dito ay pumapalya dahil sa sukdulang pagkakumplikado ng kagustuhan gawin ng tao sa kanilang impormasyon. Kung may paraan ka upang mabuksan ang ACM database, tingnan ang papel ni Pietriga, Vion-Dury, at Quint sa VXT, mula sa ACM DocEng'01 (Atlanta) na paglilitis.

Paggawa ng HTML sa server

May namumuong gamit ang server-side processors tulad ng Cocoon at iba pa, na hinahayaan kang gumawa, mag-imbak, at magpamahala ng iyong impormasyon sa XML ngunit ito'y naibibigay na naka-auto-convert na para sa HTML o kaya sa ibang pormat, bagkus, nagpapahintulot sa na magamit ang output ng kahit anong browser. Ang XSLT ay malawang ginagamit upang mabago ang XML bilang non-SGML na pormat para sa input papunta sa ibang sistema. (halimbawa, para pagbabago ng XML papuntang LATEX para sa typesetting).

Alternatibo sa XSL:FO

Imbis na gumawa ng PDF gamit ang FO na processor, posible na gumamit ng XCSLT2 upang mabago ang XML at maging LATEX para sa typesetting PDF (na ginamit sa print na bersyon ng FAQ na ito, mula Docbook papuntang LATEX). May kalamangan ito sa paggamit sa malawak ng kaalaman mayroon ang LATEX ng mga prewritten formatting modules ('packages'), nag umiiwas sa masyadong pagbabago na kinakailangan ng XSL:FO.

Bilang kapalit, ang xmltex ni David Carlisle ay nagbabasa ng XML direkta, nagbibigay ng isa pang praktikal ngunit eksperimental na solusyon sa typesetting XML. Isang gamit sa TEX system na kayang mag typeset ng XML files ay bilang backend processor para sa XSL:FO, nakaserye bilang XML. Ang PassiveTEX ni Sebastian Rahtz ay gumagamit ng xmltext upang magampanan ito.

Ang TEX FAQ ay makikita sa http://www.tex.ac.uk/faq. Si Silmaril nagpapanatili ng online na bersyon ng libro ni Peter Flynn tungkol sa LATEX, Formatting Information, na mayroong mga halimbawa ng konbersyon sa ng XSLT2. (Flynn, 2014).

Ang sistema ng SGML ay ginagamit sa kaparehang stylesheets na mekanismo: kapareho ng mga ito ay ang FOSI (Formatted Output Specification Instance), na isang pamamantayan sa depensa at inhinyerong pangindustriya, mas lalo na sa Arbortext na editor (Adept, tapos Epic); ang DynaText/DynaWeb na stylesheet na ginamit sa SGML na paglilimbag sa webl at ang Synex na stylesheet ng ginamit sa mga browser na base sa Synex engine (halimbawa Panorama, kung saan ang istilo interface ay ginawa para sa XMetaL), kung saan ang mga disenyo ay makikita parin sa DocZilla na browser.

Q 2.6: Saan ako maaaring makakuha ng browser na pang XML?

Lahat ng modernong browser ay sinusuportahan ang XML

Kasalukyang estado ng suporta ng mga browser para sa XML (1 Agosto 2014):

  • Kasalukuyang bersyon ng Microsoft Internet Explorer, Firefox, Safari, Chrome, Mozilla, at Opera ay sinusuportahan ang XML kasama ang CSS at XSLT 1.0 na mga stylesheets.
  • Wag gamitin ang Netscape (kahit anong bersyon), Internet Explorer 6 o mga dating bersyon, o kahit anong dating bersyon ng Mozilla kung gusto ng XML: wala sila nito o sadyang sira lang talaga. Mag-upgrade na sa makabagong browser hanggat maaari.
Ang iba dito sa listahan ay para lamang sa kasaysayan sa likod nito.
  • Ang Microsoft Internet Explorer 5.0 at 5.5 gumamit ng XML, pinproseso nito gamit ang built-in stylesheet sinulat gamit ang spesipiko sa Microsoft, makalumang hinalinhan ng XSLT na tinatawag na XSL (magkaiba ito sa totoong XSLT). Ang kinakalabasan ng stylesheet ay DHTML, na kapag ginamit para sa browser ay nagpapakita ng makulay, syntax-highlighted na bersyon ng XML na dokumento na mayroong collapsible na view. Tingnan sa MSXML FAQ.
  • Ang MSIE 6.0 at mga sumunod ay gumamit ng totoonng XSLT 1.0, ngunit pwede niya rin gamitin kahit yung mga sobrang luma na.
  • Ang Mozilla Firefox 0.9 pataas, Netscape 6 at 7 (walang Netscape 5), at Galeon ay mayroong buong suporta para sa XML kasama ang XSLT at CSS. Sa pangkalahatan, ang Firefox ay mas matibay kaysa sa MSIE at kayang ipanatili ang mas magandang pamantayan.
  • The awtor ng dating MultiDoc Pro SGML browser na CITEC (kung saan ang engine ay ginnamit rin para sa Panorama at ibang browsers), ay sumanib pwersa sa Mozilla upang makagawa ng pangkalahatanga browser na tinawag na DocZilla, na kayang basahin ang HTML, XML at SGML, na mayroong XSLT at CSS na stylesheets. Tumatakbo ito gamit ang Windows at Linux na umabot lamang sa 1.0 bago ito itinigil. Isa itong ambisyosong pryekto na maraming markup-handling na eksperto ang sumuporta.
Wala akong masayand impormasyon tungkol sa kakayahan pang XML ng Mac OS X browser na SAFARI, na base sa KHTML engine na ginamit sa Konqueror. Ang Konqueror mismo ay mukhang di sinusuportahan ang XML or XSLT ngunit ang Safari 1.3.2 (v312.6) sa ilalim ng OS 10.3 ay nagbigay ng bahagyang suporta para sa XML ngunit hindi ni ito pinansin ang externa na minodify na DTD ng isang internal na subset. (Salamat kay John Haynie sa pag-test nito).

Sinulat ni Mike Brown:

Ang konsepto ng 'browsing' ay isang resulta ng HTML ng pagkakaroon semantika na mayroon ito. Sa isang HTML na dokumento, mayroong mga seksyon ng teksto na tinatawag na anchor na naka-'hyperlink' sa ibang dokumento na nasa malayong lokasyon sa network o filesystem. Ang mga dokumento pang-HTML ay nagbibigay ng mga hudyat sa isang web browser kung paano ipapakita ang isang dokumento sa HTML at kung anong klaseng pag-uugali ang inaasahan ng browser kapag ginamit ito ng user. Ang spesipikasyon ng HTML ay nagbibigay ng maraming mungkahi at kinakailangan ng browser, at nag bibigay ng mga espesipikong mga ibig sabihin para sa iba't-ibang halimbawa ng markup, tulad ng elemento ng <img> na tumutukoy sa imahe na dapat makuha ng browser at maipakita kahilera ng teksto.

Di tulad ng HTML, ang XML ay di nangangailangan ng kahit anong semantiko. Walang inaatas na paraan kung paano ipapakita ang mga dokumento ng XML. Samakatuwid, ang ibig sabihin ng 'browse', bukas ang XML sa mungkahi. Halimbawa, ang isang XML na dokumento nag tumutukoy sa mga katangian ng isang parte ng makina ay hindi nagdadala ng impormasyon kung paano ipapakitang ang impormasyong iyon sa gagamit. Ang isang application ay libreng gamitin ang data, ipakita ang markup ng isang XML na dokumento na may maganda kulay, o ibahin istraktura ng data sa isang format na para sa pag-imbak sa isang database, paglipat gamit ang network, o ipasok sa isa pang programa.

Subalit, kahit purong descriptive na files lamang ang XML na dokumento, posible parin na i-'browse' parin ito sa pag-render nito kasama ng mga stylesheets. Ang styleshee ay isang hiwalay na dokumento na nagbibigay ng mga pahiwatig at algorithm para sa pag-redner at pagbabago ng data sa XML na dokumento. Ang mga HTML na manggagamit pamilyar sa Cascading Style Sheets o CSS. Ang CSS stylesheet language ay pangkalahatan at may tamang lakas lang upang magamit sa mga XML na dokumento, bagaman para ito sa pagpapakita ng visual ng isang dokumento at hindi ito para sa mga kumplikadong pagproseso ng mga data ng dokumento. Sa pag-ugnnay ng XML dokument sa CSS stylesheet, posibleng magload ng XML na dokumento sa isang CSS-aware na web browser, at ang browser ay maaaring makapagbigay ng rendering dito, kahit ang browser ay hindi marunong magbasa at iproseso ang dokumento ng XML. Ngunit, hindi lahat ng web browser ay kayang ipakita ng maayos ang XML, at hindi sila kinakailangan na kilalanin ang XML na markup na naka-ugnay sa dokument na may stylesheet, kaya wag mapalagay na ang XML na dokumento ay basta lamang mabubuksan ng kahit anong web browser.

Isang malakas at kuplikadong stylesheet language ay ang XSLT, ang Transformation na parte ng Extensible Stylesheet Language, na maaaring gamitin upang baguhin ang XML sa ibang pormat, kasama ang HTML, at ibang porma ng XML at plain text. Kapag ang output ng isang pagbabago ay HTML, maaari itong makita gamit ang isang web browser tulad ng kahit anong HTML na dokumento.

Ang antas ng suporta para sa XML at mga stylesheet sa isang web browser ay iba-iba. Bagaman ang pag-load ang pag-render ng XML sa isang browser ay posible sa maraming kaso, di ito suportado ng pangkalahatan. Datapwat, karamihan sa mga XML ay nakasalin sa HTML sa mga server. Ang nasalin ng HTML na ito ang ipinapakita sa mga browser. Karamihan sa mga website Microsoft, halimbawa, ay umiirfal bilang XML na sinalin bilang HTML. Hindi malalaman ng web browser ang pinagkaiba.

Tingnan rin ang mga tala sa software para sa mga authors at XML para sa developers, at ang detalyadong listahan ng XML na pahina sa SGML Web site sa http://xml.coverpages.org/.

Q 2.7: Paano bubuksan ang isang XML na file?

Hindi makabuluhang tanong. Ang XML ay isang data format, hindi ito programming language.

Hindi pwede at hindi dapat. Ang XML mismo ay hindi isang programming language, kaya ang mga normal na dokumento ng XML ay hindi nag-'run' o 'execute'. Ang XML ay isang markup specification language at ang XML files ay mga data laman: naghihintay lang sila hannggat may programang kaya silang ipakita at magamit, o baguhin sila.

Kung nais mo makita o ipakita ang isang XML file, buksan ito gamit ang XML editor o XML browser.

XSLT2 at XSL:FO

Hindi malinaw kung ang pinakasikat transformation processing languages (XSLT2 at XSL:FO) ay sinulat talaga gamit ang XML syntax, dahil pareho silang declarative, at hindi procedural. are actually written in XML syntax, because they are declarative, not procedural. Sa mga espesyal na mga kasong ito, maaaring mong sabihin na kaya mong i-'execute' ang isang XML file, sa paggamit ng processing na mga application tulad ng Saxon, na pinagsasama-sama ang mga direktibo na nakatukoy sa mga files bilang Java bytecode upang maproseso bilang XML na dokumento. Sa puntong it, maaaring mong ikumpara ang mga ito sa ibanga programming languages, ngunit maikukumpara mo ang mga language facilities, hindi ang XML syntax kung saan sila'y nakasulat.

Q 2.8: Kailangan ko bang lumipat mula SGML o HTML papuntang XML?

Hindi kung ayaw mo.

Hindi, ang mga kasalukuyang application software ay patuloy na gagana para sa mga kasalukuyang files. Sa ngayon ay mayroon na lamang kakaunting SGML na natitira, ngunit patuloy parin silang gagana para sa mga kasalukuyang software. Ngunit tulad sa kahit anong pinagandang pasilidad, kung nasi mo makita o i-download at gamitin ang XML files, kinakailangan mong gumamit ng software na XML-aware. Mas marami ang nabuo para sa XML kaysa sa SGML, kaya lahat ng pagsisikap ay nakatuon para sa XML (at XHTML at HTML5).

Q 2.9: Maaari ko bang gamitin ang XML para ordinaryong office application?

Oo, gamitin ang MS-Office, Libre Office, Open Office, WordPerfect, at iba pa.

Oo, karamihan sa mga office 'productivity' suites ay kaya na itong gawin, at kayang i-save ang mga dokumento kasama ang mga stylesheets, mga imahe, etc. sa isang ZIP fie:

  • Matagal nang kaya ng Libre Office, OpenOffice, at NeoOffice (Mac) ang magsave ng files bilang XML(.odt, .ods, and .odp file types are all Zip files). Ang mga pakete ay mga baryante implementasyon ng OpenOffice, at lahat ay mayroong wordprocessor, spreadsheet, presentation software, at isang vector drawing program, at mayroon silang pare-parehong Schemas. Ang Office Document Format (ODF) ay ang unang opisyal na International Standard (ISO/IEC 26300) para sa office na dokumento. Lahat sila ay kayang bumasa at magsulat ng Microsoft Office na files.
  • Ang WordPerfect suite ni Corel ay naipadala na, na may kasamang XML editor maraming taon na(na kayang gamiting ang SGML ng buo). Kaya nitong i-save ang mga formatted output bilang Microsoft Word .doc na file, ngunit gumagamit ito ng pangsariling stylesheet na teknolohiya upang maformat ang mga dokumento, hindi XSLT2 o CSS. Kaya nitong i-save ang sariling (WordPerfect) na dokumentong pormat bilang XML na representasyon.
  • Ang AbiWord wordprocessor (lahat ng plataporma) ay kayang magbukas at mag-edit ng Word at OpenOffice na mga dokumento, at kaya rin nitong i-save bilang DocBook XML o kahit na LATEX na pormat (kaso di nito kayang magbigay ng native XML editing) kaya ito'y isang mahusay na converter.
  • Ang Microsoft Office 2003 ay nagbigay ng 'Save As...XML' sa lahat ng parte ng suite maliban sa Powerpoint gamit ang WordML upang ipakita ang mga itsura ng dokumento, bagaman kaya nitong ipreserba ang mga style names kapag ito'y ginagamit.
  • Ang Office 2007, 2010, at mga sumunod ay kayang mag-save ng XML na mga dokumento (.docx, .xlsx, and .pptx file types, which are Zip files). Gumagamit sila ng Office Open XML (OOXML, kapareho pero hindi magkaugnay sa WordML) na isang katumbas ng Microsoft ng ODF. Isa itong kaagapay na ISO standard.
  • Ang Word 2003 ay ipinadala na may kasamang totoong XML editor at suporta sa ibang W3C Schemas kasama na ang sakanila (ngunit hindi ang DTDs), at nagbibigay daan rin ito para sa mga binding element types sa style ng Word (tulad ng naunang ginawa ng produkto ng Microsoft ang SGML Author for Word).
  • Iwasan ang 'Works' package ng Microsoft, dahil di ito gagana sa parehong XML at ibang Office software.
  • Wala akong impormasyon tungkol sa Lotus office products.
May iba pang detalye sa 'XML File Formats for Office Documents' sa XML Cover Pages na bahagyang nagbibigay at nagtuturo ng impormasyon: GNOME Office, KOffice, Microsoft XDocs, OASIS TC for Open Office XML File Format, 1DOK.org Project, at OpenOffice.org XML File Format.

Section 3: Para sa mga Autor

(kasama ang mga taga-sulat ng HTML at mga may-ari ng Web page)

Q 3.1: Kailangan ba may kaalaman ako pagdating sa HTML o SGML bago ko pag-aralan ang XML?

Hindi pero ito'y makakatulong.

Hindi mo kinakailangan ng paunang kaalaman, pero makakatulog ito dahil karamihan sa mga konsepto, teminolohiyo, at kasanayan ng XML ay kinuha mula sa dalawang dekadang karanasan ng SGML (at ang mga sistemang nauna dito).

Isipin na ang 'pagkilala sa HTML' ay magkaiba sa 'pag-intindi sa SGML'. Bagaman ang HTML ay sinnulat bilang SGML application, hindi pinapansin ang karamihan nito ng browser (kaya marami sa mga importante bagay ay di gumagana), kaya di porket ang isang bagay ay ginagawa ng ganitong paraan sa mga HTML na browser ay di nangangahulugan na tama ito sa SGML o XML.

Para sa mga practical ng mga rason, hindi mo kinakailangan ng kahit anong kaalaman sa SGML o HTML; kailangan mo lang ito kung balak mong sumabak sa mga pangkaloobang ng mga dokumento.

For most practical purposes you don't need any knowledge of SGML or

HTML: only if you intend delving into the internals of document type design.

Q 3.1: Paano inaasikaso ng XML ang puting bakante (white-space) sa aking mga dokumento?

Tinatago ito lahat ng Parsers. Bahala na ang applicaation kung ano ang gagawin nito dito.

Lahat ng bakanteng puti, kasama na ang mga linebreaks (Mac CR, Win CR/LF, Unix LF), TAB characters, at mga normal na ispasyo, kahit ang mga nasa gitna ng "istratural' na mga elemento kung saan walang teksto ang magpapakita, ay dinadaan sa parser ng hindi nababago ng application (browser, formatter, viewer, converter, etc). Ang parser ay kinikikilala ang konteksto kung saang ang putting-bakante ay makikita, kapag ang impormasyong ito'y makukuha, halimbawa, mula sa DTD o Schema. Ibig sabihin ay responsibilidad na ng application ang magdesisyon kung ano dapat gawin sa puwang na ito, hindi ang parser.

Isa ito sa mga makabuluhang pagbabago mula sa SGML, kung saan ang lahat ng putting-puwang sa element content ay binabalewala ng parser bago pa ito makarating malapit sa application. Tingnan ang Question 3.2 sa ilalim kung bakit.

May dalawang klase ng puting-puwang (white-space):

  • insignificant white-space (white-space na pwedeng tanggalin) ito ay makikita sa gitna ng mga istrakturang element sa mga element na content. Ito ang puwang kung saan ang ibang elemento lamang pwede rito, kung saan ang teksto ay di makikita. Nilalagay ito awtomatiko ng editor or ng mismong autor upang makatulong sa pagkalinaw ng markup, at kadalasan ay walang kinalaman sa spacing na nakikita mo kapag naproseso ang dokumento o napormat. Sa XML, itong ispasyong ito ay maipapasa sa application (sa SGML natigil ito, kaya dapat mong magdagdag ng ekstrang space sa paraang pang lumang HTML na dokumento at wag mag-alala tungkol dun);
  • significant white-space ay makikita sa loob ng elemento na maari lamang magkaroon ng teksto o teksto at markup na pinagsama (eg. talata). Sa XML, ang ispasyong ito ay naipapasa parin sa application katulad sa SGML.
Sa parehong kaso, responsibilidad ng application ang panghawakan ang ispasyo ng maayos (XSLT2 halimbawa, ay nagbibigay ng stripspace na instruksyon na nagsasabi kung paano to hahawakan). Kaya dapat ang parser ay sasabihan ang application na mayroong puti-ispasyo na sa elementong content, kung kaya nito mahanap, matatanggal ito. (Ang mga gumagamit ng SGML ay mapapansin na itong impormasyon ay hindi ESIS pero ito ay nasa Grove.)

The parser must therefore inform the application that

white-space has occurred in element content, if it can detect it, so that it can

be discarded. (Users of SGML will recognise that this information is not in

the ESIS, but it is in the Grove.)

<chapter>

<title>

My title for

Chapter 1.

</title>

<para>

text

</para>

</chapter>

Sa halimbawa sa itaas, ang application ay tumatanggap ng lahat ng magagadang printing linebacks, TAB, at mga ispasyo sa gitna ng mga elemento kasama na rin ang mga nakaembed na mga titulo. Isa itong tungkulin ng application, hindi ng parser, na magdesisyon kung anong klase ng white-space ang tatanggalin at kung ano ang hindi. Karamihan sa mga XML na application ay mayroon mga opsyon na nagbibigay daan sa mga programmer o manggagamit para kontrolin kung paano hinahawakan ng white-space. Sinu

In the example above, the application will receive all the pretty-printing linebreaks, TABs, and spaces between the elements as well as those embedded in the chapter title. It is the function of the application, not the parser, to decide which type of white-space to discard and which to retain. Many XML applications have configurable options to allow programmers or users to control how such white-space is handled.

Sa pagkasulat ni Peter Flynn:

Bakit?

Ang SGML, ang DTD ay kinakailangan palagi. Ang parser ay alam palagi kung ang white-spacea na nagkarron sa isang elemento (at datapwat, dapat tanggalin) o sa mixed content o character data (kung saan dapat ipreserba). Ang XML ay nagbibigay daan sa pagproseso ng wala ang DTD o Schema, kung saan imposible sabihin kung dapat bang tanggalin ang puwang o hindi, kaya pangkalawakang patakaran ay tinalaga na lahat ng white-space ay dapat ireport sa application.

Q 3.3: Anong parte ng dokumento ng XML ang case-sensitive?

Lahat ng ito, kasama ang markup at teksto.

Lahat ng XML na dokumento ay case-sensitive. Magkaiba ito sa HTML ng sobra at sa karamihan ng ibang SGML na application, kung saan ang default ay wag pansinin ang case. Ginawa ito upang payagan ang markup sa hindi Latin na alphabet na lengguwahe, at upang mag-alis ng problema na kasama ng case-folding sa mga sistema ng pagsusulat na kadalasan ay caseless.

  • Ang mga element type na mga pangalan ay case-sensitive: kailangan sundin ang kahit anong kombinasyon ng uppper- o lower-case upang matukoy sila (sa pamamagitan ng unang paggamit o sa DTD or Schema). Kaya di mo pwede gawin ang <BODY>...</body>: upper- at lower-case ay dapat pareho; thus <Img/>, <IMG/>, and <img/> are three different element types;
  • Para sa mga maayos na pormang XML na dokumento na walang DTD, ang unang pagganap ng element type ay ang nagtutukoy sa casing;
  • Ang mga pangalan ng attribute case-sensitive rin, halimbawa ang dalawang width attributes sa <PIC width="7in"/> at <PIC WIDTH="6in"/> (kapag pareho silang nasa isang file) ay hiwalay na attribute, dahil sa pagkakaiba width at WIDTH;
  • Ang mga values ng attribute ay case sensitive rin. Ang mga CDATA values (eg xlink:href="MyFile.SGML") ay ganun naman palagi, pero ang NAME types (ID at IDREF attributes, at token list attributes) ay case-sensitive na rin;
  • Lahat ng general at parameter entity names (eg &Aacute;), at ang iyon data content (text), ay case-sensitive palagi.
Q 3.4: Paano ko i-coconvert ang ang aking impormasyon sa XML na format?

Isulat o gumamit ng converter sa lengguwahe na naiintindihan ng XML.

Kapag ang source file format ay mayroong hindi pabago-bago at madaling makilala ang istraktura, kahit simpleng-line brea o spacing, maaaring posible na isulat magsulat ng pattern-matching routines sa maraming lengguwahe upang mapag-isa ang impormasyon na dumaan sa mga paulit-ulit na bagay at ilabas ito ng may tags.

Ang XSLT2 ay may pattern-matching syntax para sa ganitong klase ng 'up-conversion', at ang ibang processors tulad ng omnimark ay mayroon rin kaparehong features. Ang mga ganitong klase ng conversion ay maaari rin gumawa ng pansamantalang 'half-way' na format kung saan ang pangalawang conversion ay naaapply upang makagawa ng finnal XML na pormat.

Kapag ang source file ay kilala ang format (CSV halimbawa), may mga kasalukuyang mga routine na pwede na maidownload o mabili na kayang gumawa ng XML format. Maaaring gumamit ng pangalawang XML-to-XML na pangconvert upang magamit para makagawa ng final format. Ang data management na sistema ay may built-in na 'export-to-XML' na routine na kayang gumawa ng kaparehong 'half-way' na pormat para sa mga sumusunod na conversion. (tingnan sa How do I get XML into or out of my database? Para sa mga halimbawa).

Kapag ang impormasyon ay hindi pa napopormat, o sadyang hindi maganda ang o hindi parepareho ang pormat, na kahit awtomatikong conversion ay imposlbe, kinakailangan na i-edit ito bilang XML na pormat. Ang mga Wordprocessor na dokumento ay isang halimbawa nito. May mga kumpanyan nag magaling dito sa ma Pacific Rim, na may karanasan na sa mga kakaiba ngunit magagandang pormat, at ipapadala sayo ang isang buong XML.

Dalawang pormat ang palagiang hinihingi na may maganda suporta:

LATEX

Ang magandang LATEX na dokumento (yung mga di gumagamit ng homebrew macros, mas lalo na yung mga plain TEX o mga command na di na ginagamit) ay maaring maconvert gamit ang TEX4ht na package. Sa panahon ng pagkasulat nito (2015) di ito suportado mula ng namatay ang autor nito, pero magagamit parin ito.

TEX4ht ay kayang magconvert ng HTML at (OpenOffice format) sa maraming paraan, kaya ang resultang file ay madali mabuksan sa OpenOffice at mai-save bilang .docx na file. Maraming command-line options para oowriter na programa (o lowriter kapag gumagamit ka ng Libre Office) na pumapayag para sa mga scripted bulk na conversion.

May ibang pasilidad na makikita sa ibang editor at online na serbisyo (tulad ng blogs at mga forums na nagsusuporta sa LATEX formatting sa mga web pages). Maaari ring itong magamit para sa conversyion

Microsoft Word

Word (.docx) files ay mga ZIP files na naglalaman ng XML documents kasama ng mga imahe at stylesheets. Sa kadalasan, ang word documents ang mayroon lamang mga talata (elements). Lahat ng metadata tungkol sa istraktura ng dokumento ay binibigay bilang font at spacing information, na maaaring maintindihan ng tao, na nagsasanhi ng pagka-imposible na pagconvert.

Ngunit, kapag may pangalan ang styles (mula sa built-in style menu or ginawa ng awtor) ay palagiang ginagamit, posible na sumulat ng XSLT2 script upang magtugma sila at maipalabas ang magagamit ng XML markup.

May ibang editor (eg XMLMind, AbiWord) at ibang sistema na ngayon ay nagbibigay na ng conversion mula sa Word, parehong purong biswal(visual) (HTML) format, ginagaya ang itsura ng orihinal, at ang 'semantic' na bokabularyo tulad ng DocBook o DITA, na walang formatting.

Ang XSLT2 na ruta ay pwede rin sa OppenOffice/LibreOffice, ang nagtatabi rin ng XML sa isang Zip na file. Ang markup ay iba, ngunit pwede itong maconvert sa kaparehong linyahan.

Q 3.5: Paano ko papaganahin ang kasalukuyang HTML files ko sa XML?

Gawin mo muna silang XHTML/HTML5, o gumamit ng ibang type ng dokumento.

I-convert mo muna sila upang sa makabagong dokumento (mayroon or walang DTD o Schema) at isulat ang stylesheet nag isasama dito; o i-edit siya upang sumunod XHTML o HTML5.

Maaaring kailangang mong magconvert ng kasalukuyang HTML files dahil ang XML ay di pumapayag sa end-tag minimisationn (nawawalang </p>, etc), mga walang markang attribute values, at ibang numero ng ibang SGML na shortcuts na kadalasan ginagamit sa HTML. Karamihan sa HTML na kasangkapan pang-autor ay kaya ng gumawa ng halos (ngunit di talaga) maganda-gawang XML sa paninigurado na ang mga end-tags ay ginamit, ang mga attribute values ay namarkahan, etc - ngunit ang iba ay hindi.

Maaaring mong i-convert ang HTML papunta XHTML gamit ang programa ni Dave Raggett HTML Tidy (mayroon rin para sa HTML5), na kayang maglinis ng mga magugulong pseudo-markup na iniwan ng mga HTML editor na walang kwenta at kakayanan, at ihiwalay rin ang iba sa mga formatting sa isang stylesheet, pero marami paring dapat i-edit.

Karamihan sa mga modernong programang pangdisenyo, kasama ang DreamWeaver, ay di parin gumagawa ng kahit ano tulad ng isang magandang pagkakagawang HTML, dahil ginawa silang para sa gawing magagandang ang mga webpages, imbis na maging maayos ang markup. Ang paggamit ng programang pangdisenyo ng website at mga HTML na pages bilang nag-iisang lalagyan ng iyong impormasyon ay pwedeng maging delikado at isang mamahaling pagkakamali. Kung kabaligtaran ang iyong ginagawa, ang pagawa muna ng information design sa XML, tapos ay iluwas ito sa disenyo ng pahina na nagawa gamit ang website design na programa, di masyadong importante kung magulo ang HTML, dahil kaya naman ito ng mga browser.

Pagconvert ng wastong HTML bilang XHTML

Kapag ang iyong HTML files ay wasto (na may pormal na validation na may SGML parser against sa isang napublish na DTD, hindi lang simpleng syntax check), subukan itong i-wasto bilang XHTML na may XML na parser. Kung ikaw ay gumagawa ng malinis na HTML ng hindi gumagamit ng embedding na formatting, ang prosesong ito ay magbibigay lamang ng hindi pagkakapare-pareho sa upper/lowercase na element at attribute names, at ang mga EMPTY na elemento tulad ng img, dadag pa ang hindi sumusunod sa pamantayang element na tpye names kapag ginamit mo. Ang simpleng manong pag-edit o short script ay pwede na upang maayos ang mga pagbabago. Kapag ang iyong HTML ay gumagamit ng end-tag na omisyon at di markadong attirubte na values, maaari itong maayos ng awtomatiko sa paggamit ng normalisasyon na programa tulad ng sgmlnorm (mula sa OpenSP package, na parte ng OpenJade), o sa paggamit ng sgml-normalize na function sa isang editor tulad ng Emacs/psgml (wag magulantang sa mga pangalan, pareho lang silang gumagamit ng XML).

Kapag marami kang wastong HTML files, maaaring magsulat ka ng script upang magawa ito sa isang programming language na nakakaintindi ng SGML na markup (tulad ng Omnimark, SGMLC, o iba pang sikat na programming na lengguwahe (eg Perl, Python, Tcl, etc), gamit ang kanilang SGML/XML libraries); o pwede mo rin gamitin ang mga editor macros kung alam mo ang iyong ginagawa.)

 

Kapag ang iyong HTML ay hindi wasto o di maganda ang pagkakagawa, gumamit ng HTML Tidy na programang nasabi sa itaas. Kapag di nito naayos, sa kasamaang palad ay dapat kang gumawa ng espesiyal gamit ang mga pamamaraan sa ibaba, o gawin ito ng mano-manong pag-edit, o I-copy-paste mula sa browser.

Pagconvert sa bagong uri ng dokumento

Kung nasi mong maglipat ng files mula sa HTML papunta sa ibang DT, maraming native na XML na industryal DTD, at modular na XML na bersyon ng sikat na DTD tulad ng TEI(pampanitikan,pangkasaysayan, at lingguwistikang mga dokumento) at DocBook (dokumentong pang kompyuter) o DITA (pangteknikal na pagdodokumento) na pagpipilian. Maraming sites para pagpapalit ng bagong XML DTD, ngunit ang paggawa ng bagong ay bihira. Pwede ka siyempre gumawa ng sarili mong markup: hangga't may katuturan at may makagawa ka ng magandang pagkakabuo na file, maaaring kang makasulat ng CSS o XSLT na stylesheet at maipakita nag iyong dokumento sa isang browser.

Pagconvert ng di wastong HTML bilang well-formed XHTML

Kapag ang iyong files ay hindi wastong HTML (halos 95% ng Web) maaari mong i-convert sa isang magandang hindi-DTD na file gamit ang sumusunod:

  1. Palitang ang kahit anong DOCTYPE Declaration gamit ang XML Declaration <?xml version="1.0" encoding="UTF-8"?> (o gamit ang ang maayos na character encoding).
  2. Kapag walang DOCTYPE Declaration, magdadag na lamang ng XML Declaration. Alinman sa iyan, ang XML Declaration, kapag ginamit, ay dapat 1 linya lamang ng dokumento.
  3. Palitan ang kahit anong EMPTY na elemento (halimbawa bawat BASE, ISINDEX, LINK, META, NEXTID at RANGE sa header, at bawat AREA, ATOPARA, AUDIOSCOPE, BASEFONT, BR, CHOOSE, COL, FRAME, HR, IMG, KEYGEN, LEFT, LIMITTEXT, OF, OVER, PARAM, RIGHT, SPACER, SPOT, TAB, at WBR sa katawan ng dokumento) upang magtapos sila sa /> imbis na, halimbawa <img src="mypic.gif" alt="Picture"/>;
  4. Gawin lahat ng element type name at mga attribute name na lowercase;
  5. Siguraduhin na mayroong magkatugmang end-tags sa lahat ng hindi-EMPTY na mga elements; eg. lahat ng <para> ay dapat merong <para>, etc;
  6. I-Escape lahat ng < at & non-markup (ie literal text) na character bilang as &lt; and &amp; (wala dapat nag-iisang < na karakter sa simula);
  7. Siguraduhin lahat ng attribute values ay may parehong kota (mga values namay embedded single quotes ay dapat nakadouble quotes, at kabaligtaran - kapag kailangang mo ng pareho, gumamit ng &quot; character entity na reference
  8. Siguraduhin na lahat ng script URL na mayroong & bilang field separator ay mabago bilang &amp, o gumamit na lamang ng semicolon
  9. Siguraduhin lahat ng scripts (eg Javascript) na may < o & na karakter (mathematical less-than tests, at Boolean AND conditionals) ay dapat mabigyan ng CDATA Marked na seksyon, o (kapag tinanggap ng Browser processor) o mapalitan upang gumamit ng &lt; at ng &amp; o gumamit na lang ng semicolon.
Mag-ingat sa mga di na ginagamit na HTML browser na maaaring di tumanggap ng XML-style na EMPTY na elemento na may trailing slash, kaya ang mga pagbabago sa itaas ay maaaring hindi backwards-compatible. Isang alternatibo ay ang magdagdag ng walang kwentang end-tag sa lahat ng EMPTY elements, kaya ang <img src="foo.gif"/> ay magiging <img src="foo.gif"></img>. Isa itong wastong XML ngunit dapat mong siguraduhin na walang magdadagdag ng teksto sa loob ng mga element. Ang pagdagdag ng space bago ang closing slash sa EMPTY na elemento (eg <img src="foo.gif" />) ay maaaring maloko ang mga lumang browser na tanggapin ang XHTML bilang HTML.

Kapag OO ang kasagutan mo dito Checklist for invalid HTML , ayusin mo muna lahat ng problema bago ka gumawa ng iba pa. Malaki ang posibilidad na makuha mo ang ninanais mong maayos na files.

Ang Markup na syntactically ay tama pero sa semantika ay walang ibig sabihin o walang bisa ay dapat i-edit bago ang conversion. Halimbawa ang mga bogus na spacing na device tulad ng paulit-ulit na blankong talata o linebreak, walang laman na tables, di nakikitang spacing na GIF etc. Ang XML ay gumagamit ng stylesheets, at ang CSS3 ay nangangahulugan na di mo na kailangan ng mga it.

Subalit, masyadong matrabaho kapag hindi wasto ang iyong files: ito ang dahilan kung bakit maraming Webmasters namimilit na dapat wasto o magandang-gawang mga files ang gamitin (at kung bakit dapat mo rin atasan ang iyong mga tagadisenyo na ganun rin ang gawin), upang maiwasan ang di kinakailangan na manu-manong mag-aayos at mga halaga sa pagcoconvert.

Kapag ang iyong HTML ay napapasama sa kategoryang ito (HTML na ginawa ng mga WYSIWYG editors ay kadalasang hindi wasto) malamang ay kinakailngan na manu-manong pagconvert ang nararapat gawin dito, bagaman ang mga pagkakamali ay regular at pinag-isipan mabuti, ang mga files ay maaaring ginawa pala ng wasto, at maaaring gumawa ka ng programa o script upang magawa ang mga tinukoy sa itaas. Ang mga oddities na dapat mong hanapin ay:

  • Ang mga files ba ay mayroong markup syntax errors? Halimbawa mayroon ba mga kulang na angle-bracket, backslashes imbis na mga forward-slash sa mga end-tag, o mga elemento kung saan di ito nakanest ng mabuti(eg <B>starting <I>inside one element</B> but ending outside</I> it)?
  • Mayroon bang mga elemento na may nawawalang end-tag na di pwedeng i-infer ng (eg) sgmlnorm?
  • Mayroon bang mga URL (eg in hrefs or srcs) na gumagamit ng Microsoft Windows stilo ng pag-backslash imbis na normal na forward slashes?
  • Ang mga files ba ay may mga markup na may conflict sa HTML DTD, tulad ng heading o listahan sa loob ng takda, naglilista ng bagay sa labas ng environment ng listahan, header element tulad ng pangunguna sa unang html, etc?
  • Ang mga files ba ay gumagamit ng imaginary na elemento na di kilala sa kahit anong HTML DTD? Kahit na madali itong baguhin bilang isang DTDless na well-formed file karamihan ay mayroong may-ari o specific lang sa browser extension na di pormal na dinefine, kaya imposibleng iworkout ng may kabuluhan kung saan gagamitin ang mga element types.
  • Meron bang di wastong karakter (non-XML) sa iyong mga files? Tumingin mas lalo na sa mga native Apple Mac Roma-8 character na iniwan ng walang kwentang nagdisenyo; lahat ng ilegal ng karakter ng Windows (ang mga 32 na karakter sa decimal codes 128-159) na nilagay ng Microsoft editors; at kahit ano sa mga ASCII na control characters 0-31 (maliban sa mga pwede tulad ng TAB, CR at LF). Kailangan itong maconvert sa tamang mga karakter sa UTF-8. (o kung ano man ang iyong ginagamit).
  • Ang iyong mga files ba ay may hindi wasto (lumang Mosaic/Netscape-style) na mga komento? Ang mga komento ay dapat mayroong
<!-ganito --!>

na may doble gitling sa bawat dulo at walang doble (mas lalo na maraming) gitling sa gitna.

Q 3.6: Paano magconvert ng XML sa ibang file format?

Gumawa ng pangpalit sa lengguwahe na maiitindihan ng XML.

Kahit posibleng gumawa ng sariling XML parser, di ito nirerekomenda maliban sa mga studyante ng computing science. Lahat ng pangunahing lengguwahe na may XML library na gumagawa ng mabibigat pag-parsing (at pagvalidate, kung kinakailangan).

Kailangan mong malaman kung ano ang nasa XML na dokumento bago ka magsimula: walang magic na awtomatikong sasarating kung ano ang ibig sabihin ng mga bagay at kung saan sila matatagpuan sa file. Kung naibigay mo ang ilang mga XML file, kakailanganin mong pumunta at hanapin ang lumikha o ilang dokumentasyon tungkol sa mga ito. Ang unang 2-3 linya ng file ay maaaring magkaroon ng bakas kung anong uri ng XML ang mga ito. Ikaw ay tiyak na mangangailangan ng kopya ng DTD o Schema kung saan nalikha ang mga file.

Ang mga pagpipilian sa programming ay:.

  • Gumamit ng isang wika na idinisenyo para sa gawain na ito. Ang XSLT2 ay mayroong lahat ng mga pasilidad para sa paghawak ng XML built-in mula sa simula, at ang mga standalone processor ay magagamit para sa lahat ng mga plataporma. Maraming XML editor ang may kopya ng XSLT (XSLT2, sana) na binuo, kaya nag-aalok sila ng isang integrated development environment para sa server packages tulad ng Apache Cocoon.
  • Gumamit ng XMl processing o pipelining na package. Ito ay (kadalasan) mga komersyal ng mga produkto na nag bibigay ng mga ekstensibong document management, document database, at document conversion at editing na function, na parte kadalasan ng mas malaking enterprise information solution, ang paggamit ng XSLT2 o ng kanilang pansariling mga sistema. Dalawang sikat na produkto ay ang MarkLogic at OmniMark.
  • Para sa data, gumamit ng isang sistema ng conversion na hindi nangangailangan ng code ng pagsulat: Ang Flexter ay isang halimbawa ng isa na may graphical na interface para sa pagmamapa ng mga elemento ng pinagmulan (XML) sa mga target na field (ilang mga format). Habang ang diskarte na ito ay hindi angkop para sa 'dokumento' XML (mga libro, mga artikulo, atbp) ito ay nagbibigay ng isang kapaki-pakinabang na paraan para sa hugis ng talahanayan 'data'-uri ng XML ng arbitrary na kumplikado.
  • Gumamit ng madaling gamitin na compilable na language. Ang Java o C (o ang isa sa maraming ++ / ? na variant nito) ay karaniwan; Ang Pascal, FORTRAN, o COBOL bibihira na, gunit umiiral ang mga library ng XML para sa kanila).
  • Gumamit ng scripting language. Perl, Python, Tcl, VBscript, o kahit Powershell ang mga sikat at ang XML library para sa kanila ay umiiral parin; ang mga gawa ng Python ay sikat na sikat parin.
  • Pagsamahin ang XML na utility kasama ang standard na shell command ultilities. Ito ang mga halimbawa ng XML-to-CSV routine na gumagamit ng onsgmls upang ipalabas ang ESIS, at awk upang mareformat ito. Ang mga kaparehong ng mga prosesong it ay maaaring magawa gamit ang LTXML2 na toolkit.
  • Mayroong mga pwede i-download (minsan libreng) mga programa na nagke-claim na mga madaliang XML converters sila.
Ang proses ng pagconvert ng XML sa ibang format ay minsan tinatawag na 'down-converting', dahil mayroon itong kinalaman sa di maiwasang pagkawala ng impormasyon (kadalasan ang metedata) kapag ang ang gusto format ay walang ibang paraan upang iprepresenta ito.

Q 3.7: Kung ang XML ay isang subset ng SGML, maaari ko bang gamitin ang aking mga kasalukuyan mga SGML tools?

Oo, basta sila'y na-update na.

Oo, basta gumagamit ng ka ng ibinigay na updated na SGML na software na may alam sa WebSGML Adaptations TC to ISO 8879 (mga features na kailangan sa pagsuporta sa XML, tulad ng variant for ng EMPTY na elemento; at ibang aspeto ngn SGML Declaration tulad ng NAMECASE GENERAL NO; maramihang attribute token list declaration, atbp.)

Isang alternatibo ay ang paggamit ng SGML DTD upang makagawa ka ng buong-buong normal na SGML file, ngunnit isa na di gumagamit ng empty elements dapat; at tanggalin ang DocType Declaration upang maging well-fromed DTDless na XML file ito. Karamihan sa mga SGML tools ay kayang humawak ng mga XML files ng maayos, at nagbibigay na opsyon upang makapagpalit sa dalawang pamantayan. (tingnan ang mga pointers sa What XML software is available?).

Maliban kung may napakaespesyal na dahilan, dapat lumipat ka na mula SGML papuntang XML.

Q 3.8: Sanay na ko sa pag-aakda (authoring) at pagseserve sa HTML. Mabilis ko lang ba matututunan ang XML?

Oo.

Magagawa mo ito ng madalian, pero kahit pagkatapos ng dalawang dekada kinakailangan parin ng karagdagang pagtuturo, mas madaling mga kagamitan, at mas bukas na mga halimbawa ng XML na dokumento. Maaaring magkamukha ang 'Well-formed' XML documents sa HTML maliban sa ibang maliliit pero importanteng punto sa syntax.

Isang malaki pagkakaiba ay ang XML ay dapat sumunod sa patakaran. Ang mga HTML browser ay hinahayaan kang i-serve sila kay sobrang sira nila o kaya sobrang kurap na HTML dahil di sila gumagawa ng pormal na pag-parse at tinatanggal na lamang nila lahat ng mga sira. Isang malakihang problema ay ang ibang mga browser na nagkeke-claim na sila ay XML conformant pero sira rin pala, at may ibang browser na ang suporta nila sa XSLT processing at pagstilo sa CSS ay di parin maaasahan. Subukan mo ang sayo sa listahan ng totoong mga hotel web sites.

Q 3.9: Ang XML ba ay maaaring gumamit ng hindi Latin na karakter?

Oo dahil ito ang orihinal na napili.

Oo ang XML Specification ay sinasabi na ang XML ay gumagamit ng ISO 10646, isang internasyunal na pamantayang character repertoire na sakop ng halos lahat ng lengguwahe. Ang Unicode ay isang kaparehong repertoire, at ang dalawang pamantayan ay nagtatrack sa isat-isa. Ang spec ay nagsasabi na (2.2): 'Lahat ng XML processor ay kailangang tumanggap ng UTF-8 at UTF-16 na encoding ng ISO 10646...' Mayroong Unicode FAQ sa http://www.unicode.org/faq/ at mga halimbawa ng saklaw ng mga alpabeto at simbolo sa http://www.cogsci.ed.ac.uk/~richard/unicode-sample-3-2.html.

Kahit pinapayagan ang XML na maglagay ng kahit anong Unicode na karakter sa mga dokumento, ang iyong magbabasa ay kaya lamang makita ang mga karakter kung ang kanilang mga kompyuter ay nasa bagay na font! Hindi lahat ng typeface at font ay mayroong Unicode repertoire (ang mga mayroon ay malalaki).

Ang UTF-8 ay isang encoding ng Unicode bilang 8-bit na karakter: ang unang 128 ay kapareho sa ASCII, at ang higher-order characters na ginagamit par mag-encode ng kahit ano mula sa Unicode bilang sekwensya mula 2 hanggang 6 bytes. Ang UTF-8 sa single-octet na porma nito ay samakatuwid pareho sa ISO 646 IRV (ASCII9, kaya pwede mong ipagpatuloy ang paggamit sa ASCII para sa Ingles or iba pang mga salita nag gumagamit ng Latin na alpabeto ng walang mga diacritics (accent). Paalala na ang UTF-8 ay hindi tutugma sa ISO 859-1 (ISO Latin-1) pagkatapos ng code poinnt 127 decimal (sa dulo ng ASCII).

Ang UTF-16 ay isang encoding ng Unicode bilang 16-bit na karakter, na kumakatawan sa 16 planes. Ang UTF-16 ay di tugma sa mga ASCII dahil gumagamit ito ng dalawang 8-bit bytes kada karakter(mas malaki ng four bytes sa U+FFFF).

Sinulat ni Peter Flynn:

Ang encoding specification ay maaaring tumukoy sa kahit anong set ng karakter na kaya suportahan ng iyong software, ngunit ang XML Specification ay nangangailangan lamangn ng application na sumusporta sa UTF-8 at UTF-16. Ang iba sama mga kadalasang encoding ay sinusuportahan ang mga sumusunod:

US-ASCII

Ang mga karakter na TAB, LF, CR, space, at ang mga karakater na pwedeng iprint 33 to 126 (decimal) lang (lahat ng ibang control na karakter ay di pwede sa XML).

ISO-8859-1

(Western European Latin-1) ASCII plus codes 128 to 255 (decimal). Sakop lahat (pero di lahat) ng western European accent na letra.

ISO-8859-2 to 15

Itong ibang plane ng ISO-8859 ay sinasakop ang natitira at ibang set ng mga alpabetong nakabase sa Latin at iba pang simbolo.

'Codepages' at iba pang obsolescent sets

May ibang software na sumusporta sa iba't-ibang di na ginnagamit na mga 'codepages', tulad ng IBM-850, Microsoft Windows, Apple Macintosh Roman-8, DEC Multinational at iba pang di kadalasang ginagamit na encoing pangkarakter, ngunit ito hindi madaling ilipat-lipat at mahirap gamitin kaya dapat itong iwasan.

Isang madalas gawin sa Kanlurang Europa ay ang paggamit sa ISO-8859-1 upang ang karamihan sa mga madadalas na accented na letra ay maaaring gamitin bilang single bytes, at gumamit ng charaacter entity references o mga numerong para sa mga karakter. May kalamangan ito sa mga files na kayang buksan ng kahit anong single-byte na editor. Ang This has the advantage that such files can be opened in almost any single-byte editor. The sagabal lang ay ang mga numeric entities na hindi mnemonic, at ang mga character entities na kailangan pang ideklara sa DTD o internal na subset, ngunit ito'y bihira, at maaaring di maging seryosong problema.

Sinulat ni Bertilo Wennergren:

Ang UTF-16 ay isang pag-encode na kumakatawan sa bawat character na Unicode ng unang eroplano (ang unang 64K character) ng Unicode na may isang 16-bit na yunit - sa pagsasanay na may dalawang byte para sa bawat karakter. Kaya ito ay pabalik tugma sa alinman ASCII o Latin-1. Ang UTF-16 ay maaari ring ma-access ang isang karagdagang 1 milyong mga character sa pamamagitan ng isang mekanismo na kilala bilang pangalawa pares

(two 16-bit units for each character).

'...ang mga mekanismo para sa pagbibigay ng senyas kung alin sa dalawa ang ginagamit, at sa pagdadala ng iba pang mga pag-encode sa pag-play, ay sa talakayan ng mga pag-encode ng karakter. 'Ang XML Specification ay nagpapaliwanag kung paano tukuyin sa iyong XML file na naka-code na set ng character na iyong ginagamit.

'Anuman ang tukoy na pag-encode na ginamit, ang anumang karakter sa hanay ng character na ISO 10646 ay maaaring tinukoy ng decimal o hexadecimal na katumbas ng bit string nito ': kaya kahit na anong karakter ang itinakda mong personal na ginagamit, maaari ka pa ring sumangguni sa mga tukoy na indibidwal na mga character mula sa sa ibang lugar sa naka-encode na repertoire sa pamamagitan ng paggamit ng & # dddd; (decimal character code) o & # xHHHH; (hexadecimal character code, sa uppercase). Ang terminolohiya ay maaaring nakakalito, gaya ng maaari ang mga numero: tingnan ang ISO 10646 Concept Dictionary. Rick Jelliffe hasXML-ised ang mga nilalang ng ISO character entity. Ang impormasyon sa pag-encode ni Mike Brown sa http://skew.org/xml/tutorial/ ay isang napaka-kapaki-pakinabang na paliwanag sa pangangailangan para sa tamang pag-encode. Mayroong isang mahusay na online na database ng mga glyph at mga character sa maraming mga pag-encode mula sa Estonian Language Institute server sa http://www.eki.ee/letter/.

Q 3.10: Ano ang DTD at saan ko ito pwede makuha?

Isa itong specipikasyon ng istraktura ng dokumento. Maaari kang gumaw o magdownload

Ang DTD ay isang description sa XML Declaration Syntax ng isang partikular ng klase ng dokumento. Sinsabi nito kung anong pangalan ang dapat gamitin para sa iba't-ibang klase ng elemento, kung saan sila pwede mangyari, at kung saan sila babagay. Ang Schema ay kapareho lang ng ginagawa sa XML Document Syntax, para mabasa bilang XML na dokumento; ang Schema ay nagbibigay ng mas malawak na data-typing.

Halimbawa, kung gusto mo ng uri ng dokumento na kayang tukuyin ang List na mayroong Item, sa makabuluhan parte ng iyong DTD ay posibleng magkaroon ng parang ganito:

 

<!ELEMENT List (Item)+>

<!ELEMENT Item (#PCDATA)>

 

Tinutukoy nito ang isang listahan bilang isang uri ng elemento na naglalaman ng isa o higit pang mga item (iyon ang plus sign); at tinutukoy nito ang mga item bilang mga uri ng elemento na naglalaman lamang ng plain text (Parsed Character Data o PCDATA).

Binabasa ng mga validator ang DTD bago nila basahin ang iyong dokumento upang makilala nila kung saan ang bawat uri ng elemento ay nararapat na dumating, kung ano ang maaari nilang maipakita, at kung paano ang bawat isa ay may kaugnayan sa isa, upang ang mga application na kailangang malaman ito nang maaga (mga processor, browser, editor, mga search engine, navigator, at database) ay maaaring itakda nang tama ang kanilang sarili. Ang halimbawa sa ibabaw ay nagbibigay daan upang makagawa ka ng listahan tulad nito:

<List>

<Item>Chocolate</Item>

<Item>Music</Item>

<Item>Surfing</Item>

</List>

 

Sa paliwanag sa How does XML handle white-space in my documents?, ang indentation sa halimbawa ay para lamang sa mas madaling pagbasa habang nage-edit: di ito kinakailangan sa XML. Maaaring mo isulat lang ito ng parang ganito:

<List><Item>Chocolate</Item><Item>Music</Item><Item>Surfing</Item></List>

 

Ang DTD samaktuwid ay nagbibigay ng mga application na may paunang paunawa kung anong mga pangalan at mga istraktura ang maaaring magamit sa isang partikular na uri ng dokumento. Ang paggamit ng isang DTD at isang pagpapatunay ng pagpapatunay ay nangangahulugang maaari kang makatitiyak na ang lahat ng mga dokumento ng partikular na uri ay itatayo at pinangalanan sa isang pare-pareho at magkatugma na paraan.

Ang DTD ay hindi kailangan sa pagproseso ng well-formed documents,pero kailangan sila upang masamantala ang espesyal na katangian ng XML tulad ng built-in ID/IDREF na cross-reference mechanism; o mga reperensiya sa mga panglabas na non-XML files (Notasyon) tulad ng mga imahe; o kung gusto mo lamang suriin ang pagkawasto ng dokumento bago iproseso.

Libo-libong mga DTD ang kasalukuyang umiiral sa lahat ng lugar (tingnan sa SGML/XML Cover Pages). Karamihan sa kanila ay maaaring mong idownload at gamitin ng libre, ngunit ang iba ay nakarestrikto sa mga epesipikong mga industriya, o ng mga may-ari; pero maaari ka rin gumawa ng sarili mo (tingnan sa paggawa ng sariling DTD. Ang mga lumang SGML DTD ay kailangan iconvert sa XML upang magamit para sa mga XML na sistema: basahin ang katanungang tungkol sa SGML DTD papunta XML ; ngunit karamihan sa mga sikat ng SGML DTD ay makukuha na sa XML na porma.

Ang ilang mga editor ng XML ay gumagamit ng binary na format na binubuo ng DTD na ginawa ng kanilang sariling mga gawain sa pamamahala upang pahintulutan ang isang tao sa isang organisasyon na mag-charge ng mga pagbabago, at upang ipamahagi lamang ang isang hindi maibabago (binary na naipon) na bersyon sa mga gumagamit.

Ibang alternatibo sa DTD ay ang iba't-ibang proma Schema. Ito'y nagbibigay ng ekstensibong validation features kaysa sa DTD, kasama ang character data content validation.

Q 3.11: Ang XML ba ay hinahayaan akong gawin ang sarili kong tags?

Oo pero di tags ang tawag sakanila. Element types ang tawag sakanila.

Hinahayaan ka ng XML na gumawa ng mga pangalan para sa iyong sariling mga klase ng elemento. Kung sa tingin mo ang mga tag at mga elemento ay ang parehong bagay na mayroon ka na sa malaking problema: basahin nang mabuti ang natitirang tanong na ito.

Pareho ito kung pareho ang pag-iisip mo sa mga 'fields' (tingnan sa How do I get XML into or out of my database?). Maling modelo, maling lengguwahe.

Sinulat ni Bob DuCharme:

Huwag malito sa salita na 'tag' at 'elemento'. Hindi sila magkapareho. Ang isang elemento ay karaniwang naglalaman ng dalawang magkakaibang uri ng tag: isang start-tag at isang end-tag, na may teksto o higit pang markup sa pagitan nila.

Hinahayaan ka ng XML na magpasya kung aling mga elemento ang gusto mo sa iyong dokumento at ipahiwatig ang iyong mga hangganan ng elemento gamit ang naaangkop na start-at end-tag para sa mga elementong iyon.

Ang bawat <!ELEMENT... declaration ay tumutukoy sa isang uri ng elemento na maaaring magamit sa isang dokumento na sumusunod sa DTD.Tinatawag natin itong'element type'. Katulad ng HTML DTD na mayroong H1 at P element types, ang iyong dokumento ay maaaring magkaroon ng color o price element na types, o kahit anong gusto mo.

Ang mga normal (hindi bakante) na elemento ay mayroong mga start-tag, ang nilalaman ng elemento, at isang end-tag. <color>red</color> ay isang kumpletong instance ng color element. <color> ang nag-iisang start-tag ng elemento, pinapakita kung sa nagsisimula; hindi ito ang mismong elemento.

Ang mga elementong Empty ay mga espesyal na kaso na maaaring irepresenta ng pares ng start- at end- na tags na walang nakapagitna sakanila (halimbawa, <price retail="123"></price>) bilang nag-iisang empty na elementong start-tag na mayroong closing slash upang sabihin sa parser na 'huwag maghanap ng end tag na itutugma dito' (eg <price retail="123"/>).

Q 3.12: Paano ako gagawa ng sarili kong uri ng dokumento (document type)?

Suriin ng mabuti ang klase ng mga dokumento, at isulat ang DTD o Schema

Ang mga uri ng dokumento ay kadalasang nangangailangan ng pormal na paglalarawan, ang DTD man o ang Schema. Kahit posibleng magproseso ng isang well-formed na XML na dokumento ng walang ganong klase ng paglalarawan, ang pagsubok sa paggawa nito ng wala ito ay delikado. Ang DTD o Schema ay ginagamit kasama ang XML editor o API na interface upang gabayan at ikontrol ang konstruksiyon ng isang dokumento, sinisigurado nito ang mga tamang elemento ay pumupunta sa tamang lugar

Ang paglikha ng iyong sariling uri ng dokumento ay nagsisimula sa pagtatasa ng klase ng mga dokumento na nais mong i-encode: mga ulat, mga invoice, mga titik, mga file ng pagsasaayos, mga kahilingan sa pag-verify ng credit card, mga nobela, pag-play, theses, o ano pa man. Sa sandaling tama ang istraktura, isulat mo ang code upang ipahayag ito pormal, gamit ang DTD o Schema syntax. Kung nais mong gumawa ng sarili mong DTD, kailangan mong matutunan ang XML Declaration Syntax (napasimple: ang mga declaration keywords ay nagsisimula gamit ang <! imbis na open angle na bracket, at naiiba rin ang pagkabuo ng mga deklarasyon ng bahagya). Ito ay isang halimbawa ng DTD para sa isang listahan ng bilihin, batay sa fragment na ginamit kanina:

<!ELEMENT Shopping-List (Item)+>

<!ELEMENT Item (#PCDATA)>

 

Sinasabi dito na mayroon elementong tinatawag na Shopping-List at ito'y maglalaman ng elementong tinatawag na Item: Mayroon dapat na kahit isang Item (iyon ang plus na simbolo) ngunit posible magkaroon ng higit pa sa isa. Sinsabi rin na ang Item na elemento ay naglalaman lang parsed na karakter na data (PCDATA, ie teksto: wala na patuloy na markup).

Dahil wala ng ibang elemento na naglalaman ng Shopping-List, ang elementong ito ay napalagay na walang 'root' na elemento, na pumapalibot sa lahat ng nasa dokumento. Maaari mo nang gamitin ito upang gumawa ng isang XML file: bigyan ang iyong editor ng ganitong deklarasyon:

 

<?xml version="1.0"?>

<!DOCTYPE Shopping-List SYSTEM "shoplist.dtd">

 

(napalagay na nailagay mo na ang DTD sa file). Ngayon ang iyong editor ay hahayaan kang i-edit ang iyong mga nagawan files batay sa pattern:

<Shopping-List>

<Item>Chocolate</Item>

<Item>Sugar</Item>

<Item>Butter</Item>

</Shopping-List>

 

Posible upang bumuo ng mga kumplikado at makapangyarihang DTDs ng mahusay na kapitaganan, ngunit para sa anumang makabuluhang paggamit dapat mong matutunan ang higit pa Tingnan ang Maler and el Andaloussi (1995) para sa mga halimbawa: ito ay isinulat para sa SGML ngunit marahil 95% ng mga ito ay nalalapat sa XML pati na rin, bilang XML ay mas simple kaysa sa buong SGML - tingnan ang listaham ng mga restriksyon na nagpapakita kung ano ang mga tinaggal.

Sa pagkakataong ito, ang DTD file hindi kailanman nagkaroon ng DOCTYPE Declaration dito: nangyayari lamang ito sa mga instance ng XML na dokumento (ito ang tumutukoy sa DTD). At ang DTD file ay hindi kailanman rin nagkaroon ng XML declaration sa itaas nito. Sa kasamaang palad, wala paring software na gumagawa nito.

Q 3.13: Ang isang uri ba ng root element ay maaaring bang ideklara ng tahasan sa DTD?

Hindi, gumamit ka ng Document Type Declaration.

Ito'y ginagawa sa Document Type Declaration ng dokumento, hindi sa DTD.

Isinulat ni Bob DuCharme:

Sa isang Document Type Declaration tulad nito:

 

<!DOCTYPE chapter SYSTEM "docbookx.dtd">

 

ang buong punto ng kabanata bahagi ay upang matukoy kung alin sa mga uri ng elemento na ipinahayag sa tinukoy na DTD ay dapat gamitin bilang elemento ng ugat. Naniniwala ako na ang pinakamataas na elemento ng antas sa DocBook ay nakatakda, ngunit natutuklasan ko ito na isipin ang isang tao na gumagawa ng isang dokumento upang kumatawan sa isang hanay ng mga libro. Malaya kaming gumamit ng hanay, libro, kabanata, artikulo, o kahit na bilang ang elementong dokumento para sa isang wastong dokumentong DocBook.

[Ang isang trabaho ng ilang mga parser gawin ay matukoy kung anong uri ng elemento sa isang DTD ay hindi nakapaloob sa modelo ng nilalaman ng anumang iba pang uri ng elemento: ang mga ito ay sa pamamagitan ng pag-aawas sa mga pangunahing kandidato para sa pagiging default na elemento ng ugat. (PF)]

Isa itong magandang bagay dahil nakakadagdag ito sa kakahayang umangkop kung paano ginagamit ang DTD. Ito ang rason kung bakit ang XML (at SGML) ay nadala ang kanilang mga sarili pagdating sa mga electronic publishing na sistema kung saan iba't-ibang elemento ang hinalo-halo at tinugma upang makagawa ng iba't-ibang dokumento na kumukumpirmi sa iisang DTD.

Mayroon akong mga nakitang panukalang schema na hinahayaan kang piliin kung anong uri ng elemento ng schema ang maaaring ang root element ng dokumento, ngunit matapos kong makita ang section 3.3 Unang Parte ng W3C Schema Recommendation at ang schema ng RELAX NG para sa RELAX, tingin ko'y kahit ano sa mga ito ay di ka hahayaang magawa ito. Maaaring mali ako.

Q 3.14: Lagi akong nakakarinig tungkol sa mga alternatibo sa DTD. Ano ang Schema?

Tulad ng DTD na sumisigurado sa nilalaman at istraktura.

Ang W3C XML Schema recommendation ay nagbibigay ng paraan upang tukuyin ang pormal na data typing at ipagpatibay ng element content pagdating sa uri ng data, upang ang mga nagdidisenyo ng uri ng mga dokumento ay makapagbigay ng criteria sa pagsusuri ng ang datang nilalaman ng elemento mas lalo na sa markup mismo. Ang mga Schema ay sinusulat gamit ang XML Document Syntax, tulad ng dokumento ng XML, naiiwasan na ang pangangailangan sa paggamit sa processing software para mabasa ang XML Declaration Syntax (na ginagamit para sa DTD).

 

Mayroong hiwalay na Schema FAQ sa http://schema.org/docs/faq.html. Ang salitang 'vocabulary' ay minsan tumutukoy sa mga DTD at Schema na magkasama. Ang mga Schema ay nakatutok sa e-commerce, pagkontrol ng data, at database na istilo na application, kung saang ang character data content ay nangangailangan ng pagpapatunay at kung saan mas kailangan ang istriktong pag control sa data ng kaysa sa posible sa mga DTD; o kung saan ang matibay na data typing ay kinakailangan. Kadalasan ay hindi sila kinakailangan para sa mga publisinng na application para sa tradisyunal na teksto, kung saan ginagamit ang mga DTD.

Di tulad ng DTD, ang Schema ay hindi maaaring matukoy sa isang XML Document Type Declaration. Pwede silang matukoy sa isang Namespace, kung saan ang isang software para sa Schema ay makukuha ito, pero ito'y opsyonal:

<?xml version="1.0"?>

<invoice xml:id="abc123"

xmlns="http://example.org/ns/books/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://acme.wilycoyote.org/xsd/invoice.xsd">

...

</invoice>

 

Higit pa sa pangkaraniwang , tinutukoy mo ang Schema sa iyong software sa pagpoproseso, na dapat mag-record ng hiwalay na Schema na ginagamit ng kung aling halimbawa ng XML dokumento.

Kabaligtaran ng pagkakumplikado ng W3C Schema na modelo, ang Relax NG ay isang magaan, madlin gamitin na XML schema language na ginawa ni James Clark (tingnan sa http://relaxng.org/) na pinamumunuan sa OASIS. Pinapayagan nito ang katulad na kayamanan ng pagpapahayag at ang paggamit ng XML bilang syntax nito, ngunit nagbibigay ito ng karagdagang pinasimple na syntax na mas madaling gamitin para sa mga nakasanayan na sa DTDs.

Dapat tandaan ng mga may-akda at mamamahayag na ang pangmaramihang Ingles ng Schema ay Schemas: ang paggamit ng isahan upang magawa ang tungkulin para sa maramihan ay isang mabubuting mahal sa semi-literate; ang paggamit ng lumang (Greek) plural schemata ay hindi kinakailangang disacticism.

Ang mga manunulat ay dapat ring itakda na ang pangmaraming tawag (plural) sa DTDay DTDs: walang kudlit (apostrophe) - tingnan sa Truss (2003).

Isinulat ni Bob DuCharme:

Marami sa mga developer ng XML ay nadismaya sa syntax ng mga markup declaration na tinukoy sa XML spec sa dalawang kadahilanan. Una, nadama nila na kung ang mga dokumentong XML ay mabuti sa paglalarawan ng nakabalangkas na impormasyon, ang paglalarawan ng sariling istraktura ng isang dokumento ng dokumento (ang kanyang panukala) ay dapat na nasa isang XML na dokumento sa halip na nakasulat sa sarili nitong espesyal na syntax. Karagadagan sa pagkakaparepareho, ito'y magpapadali sa pag-edit at manipula ng schema sa mga regular na document manipulation tools. Pangalawa, nadama nila na hindi pinahihintulutan ng tradisyonal na DTD notasyon ang mga designer ng uri ng dokumento ang kapangyarihan upang magpataw ng sapat na mga hadlang sa data - halimbawa, ang kakayahang sabihin na ang isang uri ng elemento ay dapat palaging may positibong halaga ng integer, upang hindi ito walang laman, o dapat itong maging isa sa isang listahan ng mga posibleng pagpipilian. Pinapadali nito ang paggawa sa isang software gamit ang data na iyon dahil ang nag-dedevelop ay mayroong mas kaunting code na isusulat para sa pagtukoy ng mga pagkakamali.

Isinulat ni Peter Flynn:

Ang DTD ay para lamang sa pagtukoy ng istraktura ng elemento ng isang XML file, na may kakaunting kontrol sa attirbute values. Binibigay nito ang mga pangalan ng elements, attributes, at mga entity na pwedeng gamitin, at kung paano sila magtutugma. Ang DTDs are designed for use with traditional text documents, not rectangular or tabular data, so the concept of data types is not as relevant: text is just text. If you need to specify numeric ranges or to define limitations or checks on the character data (text) content, a DTD is the wrong tool.

Q 3.15: Paano makakaapekto ang XML sa aking mga links sa aking dokumento (document links)?

Ang mga XML Links ay mas malakas, ngunit di pa ito naipapatupad para sa mga browser.

Ang pag-uugnay ng mga kakayahan ng mga sistema ng XML ay potensyal na mas malakas kaysa sa mga HTML, kaya mas magagawa mo nang higit pa sa kanila. Ang mga umiiral na link na estilo ng href ay mananatiling kapaki-pakinabang, ngunit ang bagong teknolohiya ng pag-uugnay ay batay sa mga aral na natutunan sa pag-unlad ng iba pang mga pamantayan na kinasasangkutan ng hypertext, tulad sa TEI at HyTime, na nagpapahintulot sa iyo na pamahalaan ang bidirectional at multi-way na mga link, pati na rin ang mga link sa isang buong elemento o span ng teksto (sa loob ng iyong sariling o iba pang mga dokumento) sa halip na sa isang solong punto. Ang mga tampok na ito ay magagamit sa mga gumagamit ng SGML nang maraming taon, kaya maraming karanasan at kadalubhasaan ang magagamit sa paggamit nito. Sa ngayon ang Mozilla Firefox lamang ang mayroong XLink.

Ang XML Linking Specification (XLink) at ang XML Extended Pointer Specification (XPointer) na dokumento na mayroong detalye. Ang isang XLink ay maaaring maging isang URI o isang TEI-style na Extender Pointer (XPointer), o pareho. Ang mag-isang URI ay kinikilalang bilang resource; kapag sinundan ito ng XPointer, inaasahang ito'y ay isang sub-resource ng URI; ang mag-isang XPointer ay ina-assume na naga-apply sa nga kasalukuyang dokumento. (lahat katulad ng HTML).

Ang XLink ay pwedeng gumamit ng #, ?, o |. Ang # at ? ay may parehong ibig-sabihin sa mga application ng HTML; ang | ay nangangahulugan na ang sub-resource ay matatagpuan sa pamamagitan ng paglalapat ng link sa resource, ngunit ang pamamaraan ng paggawa nito ay naiwan sa aplikasyon. Ang isang XPointer ay maaari lamang sundin ang isang #.

Ang TEI Extended Pointer Notation (EPN) ay higit na mas malakas kaysa sa address ng fragment sa dulo ng ilang mga URIs, dahil pinapayagan ka nitong tukuyin ang lokasyon ng isang dulo ng link gamit ang istraktura ng dokumento pati na rin (o bilang karagdagan sa) kilala, naayos na mga puntos tulad ng mga ID. Halimbawa ang linked second occurrence ng salitang 'XPointer' dalawang talata ang nakalipas ay maaaring matukoy bilang URI (pinakita dito na may linebreak at ispasyo sa pagkalinaw: pero sa totoo ito ay siyempre isang mahabang string):

http://xml.silmaril.ie/faq.xml#ID(hypertext)

.child(1,#element,'answer')

.child(2,#element,'para')

.child(1,#element,'link')

 

Ang ibig sabihin nito ay ang unang elemento ng pag-link sa loob ng pangalawang talata sa loob ng sagot sa elementong ang ID ay "hypertext" (tanong na ito). Bilangin ang mga bagay mula sa simula ng tanong na ito (na may ID "hypertext") sa XML source:

  1. Ang unang child object ay ang sangkap na naglalaman ng tanong (quandaentry);
  2. Ang pangalawang child object ang sagot (answer element);
  3. Sa elementong ito, pumunta sa pangalawang talata;
  4. Hanapin ang unang link element.
Ipinalwinag ni Eve Maler relasyon ng XLink at XPointer sa mga sumusunod:

Sumusubaybay ang XLink kung paano mo inilalagay ang mga link sa iyong XML na dokumento, kung saan maaaring tumutukoy ang link sa anumang bagay (hal. GIF file); Ang XPointer ay sumasaklaw sa tagatukoy ng fragment na maaaring pumunta sa isang URL kapag nag-uugnay ka sa isang XML na dokumento, mula sa kahit saan (eg mula sa isang HTML file). [O sa katunayan mula sa isang XML file, isang URI sa isang mensahe ng mail, atbp ... Ed.]

Si David Megginson ay gumawa ng xpointer na function para sa Emacs/psgml na maghahanap ng XPointer para sa ibang lokasyon sa isang XML na dokumento. Ang XML Spy ay mayroong kaparehong tungkulin.

Q 3.16: Maaari ba akong mag-encode ng matematika (mathematics) gamit ang XML?

Oo gamit ang MathML.

Ang Mathematics ay gumagana kapag ang document type na ginagamit mo ay nagbibigay para sa math, at ang browser ng manggagamit ay kakayanin ito. Ang komunidad na gumagamit ng matematika ay binuo ang MathML Recommendation sa W3C, na isang normal na XML application pwede para sa pag-embed sa ibang DTD at Schema.

Posible rin na gumawa ng XML fragment gamit ang ibang DTDm gaya ng ISO 12083 Math, o OpenMath, o kahit ang iyong sariling gawa. Ang mga browsers na nagpapakita ng math na nakaembed sa SGML ay matagal na mayroon, maraming taon na rin (halimbawa DynaText, Panorama, Multidoc Pro) at ang mga sikat na browser ay kaya na patakbuhin ang MathML. Si David Carlisle ay gumawa ng set ng stylesheets para magamit ng mga browser ang MathML. Posible rin na gamitin ang XSLT para ma-convert ang ang XML math markup sa LATEX para pag-print (PDF) na rendering, o gumamit ng XSL:FO.

Tandaan na ang XML mag-isa ay hindi isang XML na programming language, kaya ang mga konsepto tulad ng aritmetika at mga 'if'-statement (if-then-else na lohiko) ay walang ibig-sabihin sa normal na dokumento ng XML.

Q 3.17: Paano pinangangasiwaan ng XML ang aking mga metadata?

Depende sa gusto mo.

Dahil hinahayaan ka ng XML na tukuyin ang iyong sariling mga markup language, maaari mong lubos na gamitin ang pinalawak na mga tampok ng hypertext ng XML (tingnan ang mga tanong sa Links) upang mag-imbak o mag-link sa metadata sa anumang format (halimbawa gamit ang ISO 11179, bilang Topic Maps Published Subject, sa Dublin Core, Warwick Framework, o sa Resource Description Framework (RDF), o kahit na sa Platform for Internet Content Selection (PICS)).

Walang mga predefined elemento sa XML, dahil ito ay isang arkitektura, hindi isang application, kaya hindi ito bahagi ng trabaho ng XML upang tukuyin kung paano o kung ang mga may-akda ay dapat o hindi dapat magpatupad ng metadata. Kung gayon ay libre mong gamitin ang anumang angkop na pamamaraan. Ang mga gumagawa ng browser ay maaari ring magkaroon ng kanilang sariling mga rekomendasyon sa arkitektura o mga paraan upang ipanukala.

Kapag ikaw ay gumagawa ng HTML5 mula sa iyong XML, mag-ingat dahil ang HTML5 ay hindi gumagamit ng Dublin Core di tulad ng HTML(tingnan sa http://www.w3.org/TR/html5/document-metadata.html) pero mayroon itong registration mechanism para sa mga extensions sa mga predefined set ng metadata names.

Q 3.18: Paano gamitin ang grapika (graphics) sa XML?

Ireperensa mo ito para HTML o gumamit ng XLink. O i-embed ang SVG.

Ang mga grapiko(graphics) ay tradisyonal na mga link na nagkataon lamang na may imaheng kasama sa dulo imbis na isa pang piraso ng teksto. Dahil dito, maaari mong gamitin ito sa kahit anong paraan na suportado ng XLink at espesipikasyon ng XPointer (tingnan sa How will XML affect my document links?), kasama ang mga kaparehonng syntax para sa mga kasalukuyang imahe ng HTML. Maaaring mo rin silang ireperensa gamit ang built-in notation ng XML sa NOTATION at ENTITY na mekanismo sa kaparehong paraan sa estandarteng SGML, bilang panglabas na unparse entity

Subalit, ang Scalable Vector Graphics (isang espesipikasyon ng XML para sa vector graphics) ay hinahayaan kang gamitin ang XML markup upang makaguhit ng vector na graphic objects direkta sa iyong XML file. Ito'y nagbibigay ng napakalaking kapangyarihan sa karagdagan ng portable na grapiko, mas lalo na sa interaktibo o animasyon na mga sekwensya, at ngayon ay nagiging suportado na ito ng mga browser, at pwede iluwas mula sa estandarteng grapikong (guhit) programa tulad ng GIMP.

Ang mga pagtutukoy ng XML na nagli-link para sa mga panlabas na larawan ay nagbibigay sa iyo ng mas mahusay na kontrol sa traversal at pag-activate ng mga link, kaya maaaring tukuyin ng isang may-akda, halimbawa, lumitaw man o hindi ang isang imahe kapag na-load ang pahina, o sa isang pag-click mula sa user , o sa isang nakahiwalay na window, nang hindi na kailangang mag-script.

Ang XML mismo ay di kayang sabihin or irestrikto ang graphic file formats: GIF, JPG, TIFF, PNG, CGM, EPS, at SVG sa minimo ay magkakaroon pa ng kahulugan; ngunit, ang mga vector format (EPS, SVG) ay normal na mahalaga para sa mga imaheng hindi pang-potograpiya(dayagram).

Embedded binary na grapiko

Di ka maaaring mag-embed ng raw binary na grapiko (o kahit anong binary [hindi teksto] data) direkta sa XML file dahil kahit anong byte humahalintulad sa markup ay mamamali ng pagkakaintindi: kailangan mo itong tukuyin gamit ang linking (tingnan sa baba). Gayunpaman, posible na isama ang isang transformed text na naka-encode ng isang binary file bilang isang CDATA na Markahan na Seksyon, gamit ang isang bagay tulad ng UUencode sa mga markup character], & at> inalis mula sa mapa upang hindi ito mangyari bilang isang maling CDATA pagkakasunud-sunod ng pagwawakas at maling maunawaan. Maaari ka ring gumamit ng simpleng hexadecimal encoding gaya ng ginagamit sa PostScript. Subalit para sa mga vector na grapiko, ang solution ay gumamit ng SVG (tingnan ang payo ni Peter Murray-Rust).

Ang mga sound files ay mga binary object kapareho ng mga panglabas na grapiko, kaya pwede lang silang ireperensa sa panglabas (gamit ang kaparehong teknik sa grapiko). Ang mga music files sinulat gamit ang MusiXML o baryanteng XML ng SMDL ay kayang mag-embed katulad ng SVG.

Ang punto sa paggamit ng entity upang maisaayos ang iyong grapiko ay pwede mong itago ang listahan ng entity declaration kahiwalay sa iba sa dokumento, kaya maaaring mong gamitin muli ang mga pangalan kung ang imahe ay kailanganin ng higit pa sa isang beses, pero iimbak lamang ang physical file specification sa isang lugar. Ang mga external entities ay makukuha lamang kapag gumagamit ng DTD, hindi sa Schema.

Isinulat ni Bob DuCharme:

Lahat ng data sa isang XML document entity ay dapat isang parsable XML. Maaaring mong tukuyin ang external entity bilang parsed entity (parsable XML) o bilang unparsed entity (kung ano pa meron). Ang unparsed entity ay maaaring gamitin para sa mga picture files, sound files, movie files, o kung ano pa man ang iyong gusto. Maaaring mo lang silang i-reference mula sa isang dokumento bilang halaga ng isang attribute (parang katulad ng isang bitmap na imahe sa isang HTML na web page ay ang halaga ng src attribute ng img element) at hindi parte ng mismong dokumento. Sa isang dokumento ng XML, itong attribute ay kailangan ideklara bilang isang uri ng ENTITY, at ang deklarasyon ng entity ay dapat matukoy bilang dineklarang NOTATION, dahil kung ang entity ay hindi isang XML, ang XML processor ay kailangan alamin kung ano ito. Halimbawa, sa sumunod na dokumento, ang colliepic entity ay dineklara na magkaroon ng JPEG na notasyon, at ginagamit ito bilang halaga ng picfile attribute ng empty dog element

 

<?xml version="1.0"?>

<!DOCTYPE dog [

<!NOTATION JPEG SYSTEM "Joint Photographic Experts Group">

<!ENTITY colliepic SYSTEM "lassie.jpg" NDATA JPEG>

<!ELEMENT dog EMPTY>

<!ATTLIST dog picfile ENTITY #REQUIRED>

]>

<dog picfile="colliepic"/>

 

Ang pamamaraan ng Entity ay mahalaga kapag mayroon kang maraming imahe, o kapag inuulit-ulit ang paggamit sa isang imahe, dahil idedeklara mo lang sila ng isang beses sa ibabaw ng dokumento na nagpapadali sa pamamahala ng mga imahe.

Ang mga pagtutukoy sa pag-uugnay ng XLink at XPointer ay naglalarawan ng ibang mga paraan upang ituro ang isang di-XML na file tulad ng isang graphic. Nag-aalok ang mga ito ng mas sopistikadong kontrol sa posisyon, paghawak, at hitsura ng panlabas na nilalang sa loob ng dokumentong XML.

Isinulat ni Peter Murray-Rust:

Ang mga GIF at JPEG ay nag-aalok ng bitmaps (mga pixel na representasyon ng mga larawan: lahat ay binubuo ng may kulay na mga tuldok). Ang vector graphics (scalable, binubuo ng mga pagtutukoy ng pagguhit) ay hinarap sa aktibidad ng graphics ng W3C bilang Scalable Vector Graphics (tingnan sa http://www.w3.org/Graphics/SVG). Gamit ang detalye na kumpleto na ngayon, posible na ihatid ang graphical na representasyon bilang mga vectors nang direkta sa loob ng XML file. Para sa maraming mga bagay na graphics ito ay nangangahulugan na lubos na nabawasan ang pag-download ng oras at pag-scale na walang pagkawala ng detalye.

Isinulat ni Max Dunn:

Sa kasalukuyan ang SVG talagang umasenso, at isang istorya ng tagumpay para sa XML[...] mayroon [maraming] kompormanteng implementasyon. Kasalukuyang kaming nagsimula ng SVG FAQ sa http://www.svgfaq.com/.

Ang XSLT ay maaaring gamitin upang makagawa ng SVG mula sa XML; ang mga detalye ay nasa http://www.svgfaq.com/xslt.asp( gamiting ang XSLT, wag ang Microsoft's obsolete WD-xsl). Ang dokumento ay kaya ring makipaginteract sa mga SVG na imahe. (tingnan sa http://www.xml.com/pub/a/2000/03/22/style/index.html).

Q 3.19: Ano ba ang parsing at paano ko ito gagawin sa XML?

Ang parsing ay ang paghihiwa-hiwalay ng mga impormasyon upang maging maliliit na parte.

Parsing ang paghiwa-hiwalay ng impormasyon upang maging maliliit na parte

Ang pangungusap na 'Mary feeds Spot' ay nahihiwalay bilang

  1. Subject = Mary, proper noun, nominative case;
  2. Verb = feeds, transitive, third person singular, active voice, present tense;
  3. Object = Spot, proper noun, accusative case.
Sa computing, ang isang parser ay isang programa (o isang piraso ng code o API na maaari mong i-reference sa loob ng iyong sariling mga programa) na pinag-aaralan ang mga file upang makilala ang mga bahagi ng bahagi. Ang lahat ng mga application na basahin ang input ay may isang parser ng ilang mga uri, kung hindi man hindi nila maaaring malaman kung ano ang impormasyon ay nangangahulugan. Ang Microsoft Word ay naglalaman ng isang parser na tumatakbo kapag binuksan mo ang isang .doc na file at mga tseke na maaari itong makilala ang lahat ng mga nakatagong code;iCal at Google Calendar ay naglalaman ng parser na binabasa ang .icalappointment attachment sa iyong email, at tinatrabaho ang impormasyon dito. Kapag nabigyan ito ng sirang file magbibigay ito ng error na mensahe.

Ang mga aplikasyon ng XML ay pareho lamang: naglalaman ang mga ito ng isang parser na bumabasa ng XML at kinikilala ang function ng bawat piraso ng dokumento, at pagkatapos ay ginagawang magagamit ang impormasyong iyon sa memorya sa kabuuan ng programa.

Habang binabasa ang XML file, ang parser ay sinusuri ang syntax (pointy brackets, matching quotes, etc) para sa well-formedness, at inuulat ang kahit anong paglabag. Ang XML Specification ay nililista ang mga ito.

Validation ay isa pang hakbang higit ng parsing. Bilang bahagi ng bahagi ng programa ay nakilala, ang isang pagpapatunay ng parser ay maaaring ihambing ang mga ito sa mga pattern na inilatag ng DTD o Schema, upang suriin na sila ay sumusunod. Sa proseso, ang mga default na halaga at mga datatype (kung tinukoy) ay maaaring idagdag sa resulta ng in-memorya ng pagpapatunay na nagbibigay ng pagpapatunay sa parser sa application.

 

<person xml:id="abc123" birth="1960-02-31" gender="female">

<name>

<forename>Judy</forename>

<surname>O'Grady</surname>

</name>

</person>

 

Ang pina-parse ng halimbawa sa itaas ay:

  1. Element <person> tinutukoy kasama ang Attribute xml:id (predefined type 'ID') na naglalaman "abc123" at Attribute birth naglalaman ng "1960-02-31" at Attribute gender naglalaman ng "female" naglalaman ng ...
  2. Element <name> naglalaman ng ...
  3. Element <forename> naglalaman ng text 'Judy' sinusundang ng...
  4. Element <surname> naglalaman ng text 'O'Grady'.
(maraming ibang bagay pa). Nagtatapos ito bilang isang uri ng istraktura ng puno ng pamilya sa memorya ng application (ang mga istraktura ng puno ay karaniwang paraan para mag-imbak ng mga kaugnay na data).

Pati narin sa mga built-in parsers, mayroon ding tinatawag na stand-alone parser-validators (tingnan ang payo ni Bill Rayer), na binabasa ang XML at sinsabe sayo kapag may pagkakamali na nakita (tulad ng mga kulang na angle-bracket o mga kota, o mga maling lagay na markup). Ito ay mahalaga sa pagsusuri ng mga files na nag-iisa bago gumawa ng ibang bagay gamit ang mga it, mas lalo na kung ginawa ito ng manu-mano ng walanng XML editor, o walang API na maaaring nakabaon sa ibang lugar para sa madaliang pagsusubok.

Isinulat ni Bill Rayer:

Para sa standalone parsing/validation gumamit ng software ng tulad onsgmls ni James Clark o ang rxp ni Richard Tobin. Pareho itong gumagana sa Linux at Windows/DOS. Ang pagkakaiba ay makikita sa pagkapormat ng listahan ng pagkakamali(kung meron), at ang ibang bersyon ng onsgmls ay hindi kumukuha ng DTD at iba pang files mula sa network, pero ginagawa itp ng rxp.

Siguraduhin na ang iyong XML file ay tama ang pagtukoy sa DTD nito sa isang Document Type Declaration, at ang DTD na file ay maaring makukuha ng lokal (rxp ay kunin ang mga ito kung mayroon kang koneksyon sa Internet; maaaring hindi sasgmls, kaya maaaring kailanganin ng lokal na kopya). I-download at i-install ang software. Tiyaking naka-install ito sa isang lokasyon kung saan maaaring mahanap ito ng iyong operating system. Kung hindi mo alam kung ano ang ibig sabihin nito, kakailanganin mo ng tulong mula sa isang taong nakakaalam kung paano mag-download at mag-install ng software sa iyong uri ng operating system.

Para sa onsgmls, kopyahin pubtext / xml.soc at pubtext / xml.dcl sa iyong ginagamit na directory. Upang patunayan ang myfile.xml, buksan ang isang shell (command o terminal) window (Linux) o isang MS-DOS (command) na window (Microsoft Windows). Sa mga halimbawang ito, ipagpalagay namin na ang iyong XML file ay tinatawag na myfile.xml at nasa isang folder na tinatawag na myfolder. Gamitin ang tunay na mga pangalan ng iyong folder at file kapag nag-type ka ng mga utos.

Para sa onsgmls:

$ onsgmls -wxml -wundefined -cxml.soc -s myfile.xml

 

Maraming opsyon para sa onsgmls na tinutukoy sa Web page na ito. Ang ibang binanggit dito ay kailangan dahil base ito sa SGML parser at ang mga opsyon na lumipat sa XML mode at pigilan ang normal na kalalabasan, mag-iiwan lamang ng mga pagkakamali (kung meron).

In Microsoft Windows you may have to prefix the onsgmls command with the full path to wherever it was installed, eg C:\Program Files\OpenSP\bin\onsgmls.

Para sa rxp:

$ rxp myfile.xml

 

Ang rxp ay mayroon din mga opsyon na tinutukoy sa Web page nito.

Sa Microsoft Windows, kakailanganin mong unlapian ang rxp na command na may buong path kung saan man ito nakalagay, hal. C:\Program Files\ltxml2\bin\rxp.

Q 3.20: Paano ko isamama ang isang XML sa isa pa?

Gumamnit ng general entity, pareho it sa SGML, o gumamit ng XInclude.

Isang paraan ay ang paggamit ng Document Entities, na pareho ang paggamit sa SGML, ngunit ay nangangailangan ng DTD o internal subset. Una ay kailangan mo munang ideklara ang entity na gusto mong isama, tapos ay tukuyin ito sa pangalan nito bilang Entity Reference:

 

<?xml version="1.0"?>

<!DOCTYPE novel SYSTEM "/dtd/novel.dtd" [

<!ENTITY chap1 SYSTEM "mydocs/chapter1.xml">

<!ENTITY chap2 SYSTEM "mydocs/chapter2.xml">

<!ENTITY chap3 SYSTEM "mydocs/chapter3.xml">

<!ENTITY chap4 SYSTEM "mydocs/chapter4.xml">

<!ENTITY chap5 SYSTEM "mydocs/chapter5.xml">

]>

<novel>

<header>

...blah blah...

</header>

&chap1;

&chap2;

&chap3;

&chap4;

&chap5;

</novel>

 

Ang pagkakaiba sa pagitan ng pamamaraan na ito at ang isa na ginagamit para sa pagsasama ng isang fragment ng DTD (tingnan sa How do I include one DTD (or fragment) in another?) ay na ito ay gumagamit ng isang panlabas na pangkalahatang (file) entidad na kung saan ay isinangguni sa parehong paraan tulad ng para sa isang character na entity (na may isang ampersand). Ang isang bagay na tiyakin na ang kasama na file ay hindi dapat magkaroon ng isang XML o DOCTYPE Declaration dito. Kung gumagamit ka ng isa para ma-edit ang fragment, alisin ito bago gamitin ang file sa ganitong paraan. Oo, ito ay isang sakit sa puwit, ngunit kung mayroon kang maraming mga inclusions tulad nito, magsulat ng isang script upang alisin ang deklarasyon (at i-paste ito muli para sa pag-edit).

Hindi nag susuport ng entity ang mga Schema, kaya isang alternatibo ang XInclude. Isa itong espesipikasyon ng W3C sa pagsama ng isang XML (o kapiraso nito) sa loob ng isa pa.

<?xml version="1.0"?>

...

<article xmlns="http://docbook.org/ns/docbook"

xmlns:xi="http://www.w3.org/2001/XInclude">

<info>

<xi:include href="metadata.xml" parse="xml"

xpointer="title"/>

</info>

<sect1>

...

</sect1>

</article>

 

Ang iyong processing software ay dapat kayang gumamit ng XInclude para sa ganitong trabaho. Ang XPointer na syntax ay kayang gabayan ang parser sa espesipikong lokasyon sa loob ng dokumento, di tulad ng entity, kung saan ang buong dokumento ay kasama.

Q 3.21: Kailan ko dapat gamitin ang CDATA na seksyong nakamarka (CDATA Marked Section)?

Ang CDATA ay para lamang sa mga tekstong naglalaman ng mga karakter na pang mark-up.

Hindi mo na dapat kailanganin pa ang CDATA na seksyon. Ang CDATA na mekanismo ay dinisenyo upang hayaan ang mga author quote fragment ng isang text containing markup na karakter (ang open-angle-bracket at ang ampersand), halimbawa kapag nagdodokumento ng XML (ang FAQ na ito ay gumagamit ng CDATA na seksyon ng ilang beses, sa magandang rason). Ang CDATA na seksyon ay pinapatay ang pagkilala ng ng markup sa haba ng oras na ito ng seksyon (mabubuksan ito muli ng pagsasarang sekwensya ng double-end-square-brackets at mga close-angle-bracket).

Sa kasamaang palad, wala sa isang CDATA na seksyon ang kailanman ang makikilala na may kinalaman sa markup: isa lamang itong string ng opaque na mga karakter, at kapag gumamit ka ng pagtransfomation na lengguwahe ng XML tulad ng XSLT, kahit anong markup character sa loob nito ay magiging katulad ng kanilanga katumbas na character entity

Kapag sinubukan mo, halimbawa, subukan mo ang:

Ibang teksto na may <![CDATA[<em>markup</em>]]&gt; sa loob nito.

 

Sa pag-asa na ang nakabaon na markup ay mananatiling di nagalaw, hindi ito mangyayari: maglalabas lang ito ng

Teksto na may &lt;em>markup&lt;/em> sa loob nito.

 

Sa madaling salita, ang CDATA na seksyon ay di kayang magpreserba ng mga nakabaon na markup bilang markup. Karaniwan ito ay eksakto kung ano ang gusto mo dahil ang pamamaraan na ito ay dinisenyo upang ipaalam sa mga tao ang mga bagay tulad ng pagsulat ng dokumentasyon tungkol sa markup. Hindi ito idinisenyo upang pahintulutan ang paglipas ng maliit na mga piraso ng bogus, sira, o hindi balidong hindi naka-embed na HTML na naka-embed sa loob ng iyong sariling XML sa pamamagitan ng sa isang kasunod na proseso - dahil gagawin ang panganib na magpawalang-bisa sa output.

Bilang resulta, di mo maaasahan na mananatiling di nagalaw ang markup dahil lamang nagmukha itong ligtas na nakatago sa loob ng seksyon ng CDATA: hindi ito maaaring gamitin bilang malamahikang kalasag na kayang magpreserba sa HTML markup para sa panghinaharap na paggamit bilang markup, bilang karakter lamang.

Basahin ang How can I handle embedded HTML in my XML? , na may kinalaman sa sa mga ito.

Q 3.22: Paano ko aasikasuhin ang nakabaon na HTML sa akin XML?

Ipag-asikaso ito sa kalalabasan, gumamit ng deep copy, o gumamit ng disable-output-escaping.

Bukod sa paggamit ng CDATA Sections, meron dalawang madalas na okasyon kung kailan gusto asikasuhin ng isang tao ang nakabaon na HTML sa loob ng XML na elemento:

  1. Kapag nakakuha sila (posible pangit na pagkadisenyo) ng XML o HTML mula sa ibang lugar na kinakailangan nilang asikasuhin;
  2. Kapag mayroon silang aplikasyon na tahasang dinisenyo upang mag-imbak ng string ng karakter na naglalaman ng &lt; at &amp; character entity references na mayroong layunin na ibalik ang mga ito bilang markup sa proseso mamaya (hal. FreeMind, Atom.)
Karaniwan, gugustuhin mong maiwasan ang ganitong teknik, dahil ito'y nagpapahiwatig na ang istraktura at disenyo ng dokumento ay hindi masyadong pinag-isipan. Ngunit, may mga okasyon na hindi ito maiiwasan, kaya kung kinakailangan o gusto mo talagang gumamit ng embedded HTML markup sa loob ng XML, at kailanganin na iproseso to sa hinaharap bilang markup, mayroong mga kaunting teknik na iyong pwede magamit:
  • Magbigay ng mga template para sa paghawak ng markup na iyon sa iyong pagbabagong XSLT o kahit anong software na iyong ginagamit na kung saan ay simpleng reproduces kung ano ang doon hindi nagalaw, hal. Kung kailangan ipreserba ang <b>some text</b> ng mag-isa, suplayan ng template na gagawa dito:
<xsl:template match="h:b">

<b>

<xsl:apply-templates/>

</b>

</xsl:template/>

 

(Kung ikaw ay naghawak ng mga elemento mula sa maraming iba't ibang DTDs o Schemas, malamang ay kailangan mo ng Namespaces upang mapanatili silang iba, kaya may h: unapi.)

  • Gamitin ang 'deep copy' na instruksyon ng XSLT, na naglalabas ng nested well-formed na markup verbatim,
Halimbawa...

<xsl:template match="h:b">

<xsl:copy-of select="."/>

</xsl:template/>

 

Bilang panghuling desisyon, gumamit ng disable-output-escaping na attribute sa xsl:text element of XSL[T] na makukuha sa ibang processor, hal.

<xsl:text disable-output-escaping="yes"><![CDATA[<b>Now!</b>]]&gt;</xsl:text>

 

Ito'y kinokonsidera na teknik na di kaaya-aya, at kadallasan ay hindi ginagamiat. May iba processor na hindi gumagamit nito.

  • Ang ilang mga processor (hal. JX) ngayon ay nagbibigay ng kanilang mga katumbas para sa hindi pagpapagana ng output na lumikas. Sinasabi ng kanilang mga tagapagtaguyod na ito ay 'mataas na kanais-nais' o 'kung ano ang gusto ng karamihan ng mga tao', ngunit kailangan pa rin itong pagtrato nang may pag-iingat upang mapigilan ang hindi kanais-nais (posibleng mapanganib) na di-makatwirang code mula sa naipasa hindi sinasadya sa pamamagitan ng iyong system. Nagdaragdag din ito ng isa pang dependency sa iyong software.
Para sa mga karagdagang detalye sa paggamit ng mga teknik sa XSL[T], tumingin sa the relevant question in the XSL FAQ.

Basahin rin ang When should I use a CDATA Marked Section? na halos kapareho nito.

Q 3.23: Ano ang mga espesyal na karakter sa XML?

Lima lang: &lt; (<), &amp; (&), &gt; (>), &quot; ("), at &apos; (').

Para sa normal na teksto (hindi markup), walang ibang espesyal na karakter maliban sa < at &: siguraduhin lamang na ang iyong XML Declaration ay tumutkoy sa tamang encoding scheme para sa lengguwahe at/o sistema ng pagsulat na nais mong gamitin, at ang iyong kompyuter ay iniinmbak ng tama ang file gamit encoding scheme na iyon. Tingnan ang the question on non-Latin characters para mas mahabang eksplanasyon.

Bukod sa mga character na hindi nakikitang ASCII na kontrol (ang mga hindi mo mai-type), lahat ng iba pang mga character ay normal lamang na teksto. Ang mga palatandaan ng pera (€, £, $, ƒ, ?, ?, at iba pa), ang lahat ng bantas (maliban sa <at &), at lahat ng iba pang mga titik, palatandaan, at mga simbolo sa anumang wika o sistema ng pagsusulat ay teksto lamang (ipagpalagay na magkaroon ng tamang encoding ng character).

Kung hindi pinapayagan ng iyong keyboard na i-type ang mga character na gusto mo, o kung gusto mong gumamit ng mga character sa labas ng mga limitasyon ng scheme ng pag-encode na iyong pinili, maaari mong gamitin ang isang simbolikong notasyon na tinatawag na 'entity reference'. Ang mga entity references ay maaaring maging numeric, gamit ang decimal o hexadecimal Unicode code point para sa mga karakter (hal. Kapag ang iyong keyboard ay walang simbolong Euro (€), maaaring mong itype ang &#8364;); o maaari silang maging karakter, gamit ang tinatag na set ng pangalan na maaari mong ideklara sa iyong DTD. (hal. <!ENTITY euro "&#8364;">) na pinapayagan kang gamitin ang pangalan na &euro; sa iyong dokumento. Kapag gumagamit ka ng Schema, dapat kang gumamit ng pormang pangnumeriko para sa lahat maliban sa 5 sa ibaba dahil Schema ay walang ibang paraan upang gumawa ng character entity declarations.

Kapag gumamit ng XML na walang DTD, ang limang character entity na nakalista sa itaas ng tanong ay inaasuma na predeclared ito, at maaaring mo itong gamitin ng di dinedeklara ang mga ito ng magkakahiwalay (ang ibang software ay pinipigilan kang ideklara sila muli):

&lt;

Ang karakter ng less than ay (<) ay ang panimula ng element markup (unang karakter ng start-tag o end-tag).

&amp;

Ang ampersand na karakter (&) ay ang panimula ng entity markup (unang karakter ng character entity reference).

&gt;

Ang greater-than na karakter (>) ay ang panapos ng start-tag o ng end-tag.

&quot;

Ang double-quote na karakter (") ay ang sumisimbolo sa character entity reference kung kinakailangan mong magsama ng double-quote sa loob ng string na mayroon ng double-quote.

&apos;

Ang apostrophe o single-quote na karakter (') ay sumisimbulo sa character entity reference kapag kailangan mo magsama ng single-quote o apostrophe sa loob ng string kung saan mayroon single-quote.

Kapag gumagamit ng DTD, kailangang mong ideklara LAHAT ng character entities na kailangan mo gamitin, kaya isang magandang gawain na ideklara ang kahit ano sa limang sa itaas na iyong gagamitin. Kapag gumagamit ng isang Schema, kailangan mong gamitin ang numeric na porma maliban sa lima sa itaas dahil ang mga Schema ay hindi kayang gumawa ng deklarasyon para sa character entity.

Mayroon mga pagkakataon na ang mga espesyal na karakter ay pwede gamitin mismo, tulad ng CDATA Sections. Karamihan sa mga control characters ay ipinagbabawal sa XML: tingnan sa espesipikasyon para sa karagdagang detalye.

Walang reserbang salita na ganito sa isang user namespace ng XML: maaaring mong tawagin ang elementelemetn at ang attribute attribute sa mga sumunsod na halimbawa:

<?xml version="1.0"?>

<!DOCTYPE DOCTYPE SYSTEM "SYSTEM" [

<!ELEMENT DOCTYPE (ELEMENT+)>

<!ATTLIST ELEMENT ATTLIST ENTITY #IMPLIED>

<!NOTATION DOCTYPE SYSTEM "ENTITY">

<!ENTITY NOTATION SYSTEM "ENTITY" NDATA DOCTYPE>

]>

<DOCTYPE>

<ELEMENT ATTLIST="NOTATION">foo</ELEMENT>

</DOCTYPE>

 

Kung saan ang file SYSTEM ay naglalaman ng deklarasyon na: <!ELEMENT ELEMENT (#PCDATA)> at ang file na ENTITY ay wala ?

Mayroon mga keywords tulad ng DOCTYPE at IMPLIED nga mga reserbang Names, pero sila'y pinangungunahan ng isang flag na karakter (Markup Declaration Open character o Reserved Name Indicator) para di sila makalito sa mga Names na tinukoy mismo ng manggagamit (user-specified).

Q 3.24: Ano pang ibang sistema ng markup ang mayroon?

Maraming mga sikat na sistema ang maaaring magamit.

MarkDown

Ito ay parehong isang plaintext formatting syntax, at isang Perl script na nag-convert ito sa XHTML. Ang layunin ay ang souce file ay hindi dapat magmukhang markup (kaya mababasa ito bilang isang plaintext na dokumento), ngunit dapat itong maging sapat na matatag upang mapaglabanan ang conversion.

Ang detalye ay nasa http://daringfireball.net/projects/markdown/.

Wiki/blog formats

Maraming klase rin ng ganito: ang pinakakilala ay MediaWiki ng pormat na ginagamit ng Wikipedia, na nagbibigay ng napakalawak na pasilidad ng plaintext sa paggawa ng mga entries na ginagamit ng site, na naco-convert sa HTML upang madisplay.

Mga kaparehon konseptuwal na pormat ay ginagamit ng ibang sistemang wiki tulad ng PmWiki at Google Code; at mayroon ring pinaghalo-halo na gumagamit ng HTML tulad ng Fossil.

LATEX

Ang sistema ng LATEX na panghanda ng dokumento at pag-typeset (Lamport, 1994) ay gumagamit ng macro na gawa sa TEX syntax upang mapatupad ang bahagyang pagkakaistrakturang modelo ng dokumento. Ang syntax ay gumagamit ng backslash upang ma-flag ang mga markup na elemento at mga instruksyon para sa pag-format, at ang curly braces upang madelimit ang mga argument at irestrikto ang sakop ng aksyon pagtipograpiko.

Ang software ay magagamit na para sa lahat ng plataporma, at gumagawa ng PDF o Postscript. Ang kombersyon ng LATEX mula sa mga sistemang nakabase sa XML ay magagawa gamit ang XSLT, pero ang kombersyon mula sa isang sistema ng LATEX ay magsasanhi ng problema dahil mayroon itong mga features na hindi makikita sa ibang sistema.

SGML

Ang SGML at iba sa mga nauna dito ay nanatiling makukuha ngunit ito'y di masyado ginagamit.

Mayroong malawakang listahan ng ibang markup na mga lengguwahe Wikipedia page.

Seksyon 4: Para sa mga taga-develop (Developer)

Tagaprograma at tagapagtalaga (Programmers and implementers)

Q 4.1: Nasaan ang spec?

Nandito.

Nandito: Bray, Paoli, Sperberg-McQueen, Maler and Yergeau (2004) (tingnan sa http://www.w3.org/TR/REC-xml). Kasama ang EBNF, at lahat ng normatibong materyaal. Mayroon ring bersyon sa salitang Japanese; Spanish; Korean; isang Java-ised annotated version, at isang anotadong bersyion sa libro (DuCharme, 1999).

Pinamumunuan ni Eve Maler ang DTD ginagamit mismo ng spec ; ang DTD ay para rin sa pag-encode ng maraming espesipikasyon ng W3C, tulad ng XLink, XPointer, DOM, XML Schema, atbp. Mayroong dokumentasyon na makitkita para sa DTD. Tandaan na nag spec ng XML ay kailangan gumamit ng espesyal na one-off na bersyon ng DTD, dahil ang orihinal na DTD ay matagal na wala.

Q 4.2: Sinusubukan kong intindihin ang XML Spec: bakit gumagamit ito ng mahihirap na mga terminolohiya?

Kailangan nitong maging pormal upang maging sakto.

Upang magtagumpay ang implementasyon, ang mga terminolohiya ay kailangan maging sakto. Ang layunin ng disenyo ng walong ng pagtutukoy ay nagsasabi sa atin na 'ang disenyo ng XML ay magiging pormal at madaling maintindihan'. Upang ilarawan ang XML, sa gayon ang pagtutukoy ay gumagamit ng pormal na wika na iginuhit mula sa maraming mga larangan, partikular na sa mga dokumento sa engineering, internasyonal na mga pamantayan at computer science. Ito ay kadalasang nakalilito sa mga taong hindi ginagamit sa mga disiplina na ito sapagkat ginagamit nila ang mga kilalang salitang Ingles sa isang espesyal na diwa na maaaring iba sa kanilang mga karaniwang kahulugan - halimbawa: gramatika, produksyon, token, o terminal.

Ang espesipikasyon na ito ay di pinapaliwanag ang mga terminong ito dahil sa isang parte ng layunin ng disenyo: ang espesipikasyon ay dapat maging maiksi ngunit madaling maintindihan. Di nito inuulit ang mga paliwanag sa makukuha sa ibang lugar: Pinapalagay nito na alam mo na ang mga ito at alam mo rin ang mga ibig-sabihin o di kaya ay kaya mong hanapin ang mga ito. Sa madaling salita, upang maintindihan ang pagkabuo ng spec, kailangan mo ng kaalaman sa SGML at agham pangkompyuter, at mayroon kang karanasan sa lengguwa ng pormal na ista means that to grok the fullness of the spec, you do need a knowledge of some SGML and computer science, and have some exposure to the language of formal na estandarte.

Ang hindi maingat na magteterminolohiya sa mga espesipikasyon ay nagsasanhi ng mga hindi pagkakaintindihan na nagpapahirap sa pagtatalaga, kaya ang mga pormal na istandarte ay kailangan sabihin sa isang pormal na terminolohiya. Ang FAQ na ito'y hindi isang pormal na dokumento, at mapapansin agad ng mambabasang marunong na gumagamit ito ng salitang 'element names', kung saan ang salitang 'element type names' ay mas tama; pero ang nauna ay mas malawang nauunawaan.

Makakatulong para sa mga bagong sa mga terminolohiyang ito ang pagbasa sa TEI P4: Guidelines for Electronic Text Encoding and Interchange (Sperberg-McQueen and Burnard, 2002) o XML: The Annotated Specification (DuCharme, 1999).

Q 4.3: Ano ang ibig-sabihin ng DTDless, valid, at well-formed?

Ang well-formed ay nangangahulugan na ang bagay ay tama pagdating sa syntax; wasto dahil ito'y kumukomporme sa DTD o Schema.

Hinahayaan ka ng XML na gumamit ng isang Schema o Document Type Definition (DTD) upang ilarawan ang markup (elemento at iba pang mga construct) na magagamit sa anumang tukoy na uri ng dokumento. Gayunpaman, ang disenyo at pagtatayo ng Schemas at DTDs ay maaaring kumplikado at di-walang halaga, kaya pinapayagan ka rin ng XML na magtrabaho nang walang isa. Ang ibig sabihin ng operasyon ng DTDless ay maaari mong imbakin ang markup nang hindi ito pormal na itatakda, kung ikaw ay mananatili sa mga tuntunin ng well-shapedness ng XML syntax.

Upang gumawa ng gawaing ito, ang isang DTDless na file ay ipinapalagay na tukuyin ang sarili nitong markup sa pamamagitan lamang ng pagkakaroon at lokasyon ng mga elemento kung saan mo nilikha ang mga ito. Kapag ang isang XML application ay nakatagpo ng isang DTDless na file, ito ay nagtatayo ng panloob na modelo ng istraktura ng dokumento habang binabasa ito, dahil wala itong Schema o DTD upang sabihin ito kung ano ang aasahan. Dapat na walang sorpresa o hindi siguradong syntax. Upang makamit ito, ang dokumento ay dapat na 'mahusay na nabuo' (dapat sundin ang mga patakaran).

Upang maintindihan kung bakit kailangan ang konseptong ito, tingnan ang mga isang istandard na HTML bilang halimbawa:

  • Ang elementong <img> ay dineklara (sa [SGML] DTD para sa HTML) bilang EMPTY, kaya wala itong end-tag (walang </img> sa ganito);
  • Karamihan sa ibang elemento ng HTML (tulad ng <para>) ay pinapayagan kang magtanggal ng end-tag para mas malinaw.
  • Kapag ang isang XML processor ay nagbasa ng HTML file ng hindi nito nalalamant (dahil di ito gumagamit ng DTD), at nakatagpo ito ng <img> o a <para> (o kahit anong start-tag), wala itong ibang paraan upang malaman kung aasa ba siya sa isang end-tag o hindi. Magiging imposible ngayon malaman kung tama ba ang ibang parte ng file o hindi, dahil walang ebidensya kung nasa loob ba ito ng elemento o nagtapos na ito.
Ang mga nabuo na mga dokumento ay nangangailangan ng mga start-tag at end-tag sa bawat normal na elemento, at ang anumang mga elemento ng EMPTY ay dapat gawin nang hindi malabo, alinman sa pamamagitan ng paggamit ng mga normal na start-tag at end-tag, o sa pamamagitan ng paglalagay ng slash sa pangalan ng simula -tag bago ang pagsasara> bilang isang senyas na hindi magkakaroon ng hiwalay na end-tag.

Ang lahat ng mga XML na dokumento, parehong DTDless at wasto, ay dapat na mahusay na nabuo. Dapat silang magsimula sa isang XML Declaration kung kinakailangan (halimbawa, ang pagkilala sa character encoding o paggamit ng Standalone Document Declaration):

 

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>

<foo>

<bar>...<blort/>...</bar>

</foo>

 

Isinulat ni David Brownell:

Ang XML na mahusay na nabuo ay hindi kailangang gumamit ng isang Standalone Document Declaration sa lahat. Ang mga naturang pagpapahayag ay may upang payagan ang ilang mga speedups kapag nagpoproseso ng mga dokumento habang binabalewala ang panlabas na mga entity na parameter - talaga, hindi ka maaaring umasa sa mga panlabas na deklarasyon sa mga nakapag-iisang dokumento. Ang mga uri na may kaugnayan ay mga entity at mga katangian. Ang mga standalone na dokumento ay hindi dapat mangailangan ng anumang uri ng katangian na normalisasyon sa halaga o defaulting, kung hindi man ito ay hindi wasto.

Posible rin na gumamit ng isang Deklarasyon ng Uri ng Dokumento na may mga file na DTDless, kahit walang Uri ng Dokumento na tumutukoy sa:

Richard Lander writes:

Kung kailangan mo ng character entities [bukod pa sa limang nakasama na] sa isang DTDless file, maaari mong ideklara ang mga ito sa pang-internal na subset ng hindi nirereperensya ang kahit ano bukod pa sa root element type:

 

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE example [

<!ENTITY mdash "&mdash;">

]>

<example>Hindsight&mdash;a wonderful thing.</example>

Kaya ito ang mga dapat sundin:

Well-formed XML

  • Lahat ng tags ay dapat balanse; lahat ng elemento na mayroon data na pangkarakter o mga sub-element ay dapat mayroong start-tag at end-tag (di pwede magtanggal maliban sa mga EMPTY na mga elemento, tingnan sa ibaba)
  • Ang lahat ng mga halaga ng katangian ay dapat nasa mga panipi. Ang solong-quote na character (ang apostrophe) ay maaaring gamitin kung ang halaga ay naglalaman ng isang double-quote na character, at vice versa. Kung kailangan mo ng ilang mga quote bilang data pati na rin, maaari mong gamitin ang & amp; apos; o & quot ;. Huwag sa ilalim ng anumang pangyayari gamitin ang automated typographic ('kulot') inverted kuwit na pinalitan ng ilang wordprocessors para sa pag-quote ng mga halaga ng katangian.
  • Anumang mga elemento ng EMPTY (hal. Mga walang dulo ng tag tulad ng <img>, <hr> at HTML at iba pa ng HTML) ay dapat na magtapos sa /> o dapat silang magmukhang mga elementong walang EMPTY sa pamamagitan ng pagkakaroon ng tunay na end- tag (ngunit walang nilalaman). Halimbawa: Ang magiging <br/> o <br> </ br> (na wala sa pagitan).
  • • Hindi dapat maging anumang nakahiwalay na mga markup-start character (<or &) sa iyong data ng teksto. Dapat silang ibigay bilang & lt; at & amp; ayon sa pagkakasunud-sunod, at ang pagkakasunud-sunod]]> ay maaaring mangyari lamang bilang dulo ng isang seksyon na minarkahan ng CDATA: kung ginagamit mo ito para sa anumang ibang layunin ay dapat itong ibigay bilang]] & gt ;.
  • Ang mga elemento ay dapat nakaayos sa loob (walang nakapatong na markup, pareho sa HTML);
  • Ang DTDless well-formed na dokumento ay pwedeng gumamit ng attributes galing sa ibang elemento, pero ang mga attribute ay napapalagay na isa uri ng CDATA. Di ka maaaring gumamit ng ID/IDREF na attribute type para sa parser-checked cross-referencing sa isang DTDless na dokumento.
  • Ang mga XML files na walang DTD ay kinokonsidera na &lt;, &gt;, &apos;, &quot;, at &amp;nakatukoy na at maaaring gamitin. Sa isang DTD, lahat ng character entities ay dapat nakadeklara, kasama ang lima.
Peter Flynn writes:

Valid XML

Ang mga Valid XML files ay mga well-formed files na mayroong Document Type Definition (DTD) o Schema at kumukumpirmi dito. Sila'y dapat well-formed, kaya lahat ng patakaran sa itaas ay dapat masunod.

Ang isang valid file ay nagsisimula na may Document Type Declaration na tumutkoy sa DTD, o code na tumutukoy sa isang W3C Schema. Maaaring mayroon itong opsyonal na XML Declaration.

 

<?xml version="1.0"?>

<!DOCTYPE advert SYSTEM "http://www.foo.org/ad.dtd">

<advert>

<headline>...<pic/>...</headline>

<text>...</text>

</advert>

 

Tinukoy ng XML Specification ang isang SGML Declaration para sa XML na kung saan ay naayos para sa lahat ng mga pagkakataon at samakatuwid ay hard-naka-code sa lahat ng XML software at hindi kailanman tinukoy nang hiwalay (maliban kapag gumagamit ng isang validator switchable SGML / XML tulad ng onsgmls: tingnan sa ibaba).

Peter Flynn writes:

Ang SGML Declaration para sa XML ay tinanggal na mula sa teksto ng Specification pero makukuha parin bilang hiwalay na dokumento. Dahil ito'y kadalasan nawawala o di na pinapansin, mayroong kopya dito (WebSGML TC) at dito (Extended Naming Rules TC), at ang bersyon para sa onsgmls dito.

Ang tinukoy na DTD ay dapat ma-access sa XML processor gamit ang URI na ibinigay sa SYSTEM Identifier, alinman sa pamamagitan ng pagiging magagamit sa isang lugar (ibig sabihin ang gumagamit ay may isang kopya sa disk), o sa pamamagitan ng pag-retrievable sa pamamagitan ng network. Tandaan na ang mga pagtutukoy ng DTD ay dapat na URI (lokal, kamag-anak, o absolute). Ang mga reference sa file system na tukoy sa pagmamay-ari (hal. C: \ dtds \ my.dtd ay hindi mga URI at hindi maaaring gamitin: gamitin ang file: /// C | / dtds/my.dtd format sa halip.

Posible na (mas gusto ng maraming tao ang masasabi) matustusan ang isang Pormal na Tagatukoy ng Publiko sa keyword na PUBLIC, at gumamit ng isang Catalog ng XML upang i-dereference ito, ngunit ang Pagtutukoy ay nag-utos ng isang Tagatukoy ng SYSTEM kaya dapat pa itong ibigay pagkatapos ng PUBLIC identifier: walang karagdagang kailangan ang keyword. Ang isang PUBLIC identifier ay bumubuo ng isang claim sa pagmamay-ari lamang ng identifier, hindi sa DTD mismo (bagaman maraming mga kaso na ipinahiwatig).

 

<!DOCTYPE advert PUBLIC

"+//Silmaril//DTD Foo Corp Advertisements//EN"

"http://www.foo.org/ad.dtd">

<advert>...</advert>

 

Isang test para sa pagkawasto ay kapag ang validating parser ay walang nakitang pagkakamali sa file. Dapat nitong kumumporme sa lahat ng depinisyon at deklarasyon sa DTD.

Ang mga XML (W3C) Schemas ay hindi kadalasang nakakonekta direkta mula sa loob ng XML document instance sa paraan ng parang sa DTD: ang mahalang Schema (XSD file) para sa mga instance ng dokumento ay normal na tinutukoy ng parser ng hiwalay, sa pamamagitan ng file system reference o sa paggamit ng Target Namespace.

Q 4.4: Ano ang dapat kong gamitin sa aking DTD/Schema, attiribute o element?

Tingan sa http://xml.coverpages.org/elementsAndAttrs.html

Depende ito kung para saan mo dinedesenyo ang dokumento.

Ang tradisyunal na nakasanayan sa editoryal para sa mga normal na dokumento ng teksto ay ilagay ang 'totoong' teksto (kung ano ang ipi-print o ipapakita sa user) bilang nilalaman ng nilalaman ng character sa mga elemento, at panatilihin ang metadata (ang impormasyon tungkol sa teksto) sa mga katangian, mula sa kung saan sila ay maaaring mas madaling ihiwalay para sa pagtatasa o espesyal na paggamot tulad ng pagpapakita sa margin o sa isang mouseover:

 

<l n="184">

<spara>Portia</spara>

<text>The quality of mercy is not strain'd,</text>

...

</l>

 

Ngunit mula paningin ng sistema, walang mali ang pagtatago ng data sa iba pang paraan, lalo na kung saan ang dami ng data ng teksto sa bawat pagkakataon ay medyo maliit:

 

<line speaker="Portia" text="The quality of mercy is not strain'd,">184</line>

 

Marami ang nakasalalay sa kung ano ang nais mong gawin sa impormasyon at kung aling mga piraso nito ay pinakamadaling ma-access ng bawat paraan. Si John Cowan ay may ilang mahusay na desisyon sa kanyang blog entry, Elements or Attributes.

Isang dapat tandaan sa mga kumbensyunal na tekstong dokumento ay kapag ang markup ay natanggal, ang teksto mag-isa ay dapat tama parin, nababasa at magagamit, kahit ito'y hindi nakaayos at mahirap gamitin. Para sa mga database output, ang ibang dokumentong ginawa sa makina tulad ng e-commerce na mga transaksyon, hindi mahalaga ang mabasa ito ng tao, kaya posible na magkaroon ng dokumento kung saan lahat ng data ay mga attribute, at ang mga dokument ay walang mga character data sa mga modelong nilalaman. Tingnan sa http://xml.coverpages.org/elementsAndAttrs.html para sa karagdagang impormasyon.

Sinulat ni Mike Kay:

Mula sa isang manggagamit: '[...] karamihan ba sainyo ay gumagamit ng xml na nakabase sa element o attribute? Bakit?'

Tinatanong ito palagi ng mga baguhan. Ang mga walang karanasan ay mahilig magpahayag ng kanilang mga opinion ng taos-puso. Ayon sa mga eksperto, walang tamang sagot sa sa tanong na ito. (http://lists.xml.org/archives/xml-dev/200006/msg00293.html)

Q 4.5: Ano ang mga nagbago sa SGML at XML?

Mas striktong syntax at walang mga opsyon.

Isang nangungunang pagbabago sa syntax ay ang EMPTY na elemento sa isang DTDless na dokumento ay dapat gumamit ng Null End-Tag na teknik (hal. <img src="pic"/>) dahil kung walang DTD o Schema, walang ibang paraan upang malaman ng parser kung kailan hindi aasahan ang end-tag. Kung ang isang uri ng elemento ay dineklarang EMPTY ng DTD/Schema, maaaring gamitin nito ang NET o ang buong end-tag syntax (hal. <img src="pic"> </img>).

Ang iba pang mga pagbabago sa syntactic ay dapat na naka-quote lahat ng mga halaga ng katangian; walang pagliit ng mga katangian o elemento; at lahat ng bagay ay sensitibo sa kaso. Ang isang mahalagang karagdagan ay ang pinapayagan na maramihang mga deklarasyon ng ATTLIST, kaya ang isang panloob na subset ay maaaring idagdag sa mga katangiang ipinahayag para sa isang uri ng elemento.

Ang mga prisipal na pagbabago sa Document Type Definitions (DTD) ay sa mga bagay na iyong puwedeng itukoy. Upang mapasimple at mapadali ang pagsulat ng processing software, isang malaking bilang ng SGML markup declaration na opsyon ay napigilan (tingnan sa listahan ng tinanggal na features). Ang pinakamalaking pagbabago sa pamamahala ng bokabularyo ay ang pagpapakilala sa W3C Schemas, na nagbigay daan sa ilang antas ng content-type na balidasyon na hindi makikita sa DTD, at ang kanilang sarili ay ginagamit sa XML Document Syntax.

Ang isa pang pangunahing karagdagan dito ay ang namespaces, na nagbibigay daan sa mga Schema at dokumento na makilala ang uri ng element at attribute source (pagmamay-ari, pinaggalingan, aplikasyon). Hinahayaan nitong magkaraoon ka ng uri ng elemento na may kaparehong pangalan ngunit may iba't-ibang ibig-sabihin sa iisang dokumento: hal. DocBook:table and TEI:table. Ang isang ekstrang Name Start na karakter (ang kolon) ay dinagdag sa pangalan ng XML upang mapagana ito. Sa likod ng Despite its klasipikasyon nito, ang isang kolon ay maaari lamang lumabas sa mga mid-name, hindi sa simula o huli, at ang prefix xml: ay Reserved.

Q 4.6: Maaari ko bang gamitin ang JavaScript, ActiveX, atbp. sa XML files?

Hindi sa mismong XML file, pero sa gamit ng stylesheet.

Nakadepende ito sa mga kayang italaga ng pasilidad ng browser ng gumagamit. Ang XML ay tungkol sa pagtutukoy ng impormasyon; ang mga lengguwaheng pang-scripting at lengguwahe para embedded na functionality ay software ay pinapayagan na ang impormasyon ay mamanipula at sa panig ng gumagamit, upang ang mga lengguwaheng ito ay kadalasang walang lugar sa isang XML file mismo, kundi sa mga stylesheet tulad ng XSL at CSS, at mga script files para Javascript atbp., kung saan sila'y maidadagdag sa nagawang HTML.

Ang XML mismo ay nagbibigay daan upang matukoy ang mga markup na kailangan upang mapatupad ang scripting na lengguwahe: bilang patas na pamantayan, di nito inaanyayahan o pinipigilan ang kanilang gamit, at hindi pumapabor sa isang lengguwahe kapalit ng iba, kaya posible na gamitin ang XML markup upang maimbak ang code ng programaa, kung saan ito'y makukuha (halimbawa) ng XSLT at mga HTML script na elemento.

Ang pag-embed ng server-side script, tulad ng PHP o ASP, ay maaaring magamit sa may-katuturang server upang baguhin ang XML code sa mabilisang, habang ang dokumento ay nagsilbi, tulad ng maaari nila sa HTML. Ang mga may-akda ay dapat magkaroon ng kamalayan, gayunpaman, na ang pag-embed ng server-side scripting ay maaaring nangangahulugan na ang file na naka-imbak ay hindi wastong XML: ito ay nagiging balido lamang kapag pinoproseso at pinaglingkuran, kaya dapat gawin ang pag-aalaga kapag gumagamit ng mga editor ng pagpapatunay o iba pang software upang pangasiwaan o pamahalaan ang naturang mga file. Isang mas magandang solusyon ang paggamit ng XML serving na solusyon tulad ng Cocoon.

Kung kailangan mo magbaon ng scripts sa isang web page na nanggagaling sa XML, kailangan mong siguraduhin na ang dalawang markup na karakter < at & ay naka-escape bilang &lt; at &amp; o na ang bawat nilalaman ng script ay nakapalibot sa isang CDATA na seksyon upang di ito makilala bilang markup.

Q 4.7: Maaaring ko bang gamitin ang Java upang gumawa o pangasiwaan ang mga XML files?

Oo. Sige lang.

Oo kahit anong programming language ay pwedeng gamitin upang maipalabas ang data galing sa ibang soruce na pormat ng XML. May lumalaking bilang ng front-end at back-ends para sa programming na environment at data management environment upang maging awtomatiko ito. Ang Java isa lamang sa mga pinakasikat sa kasalukuyan.

Mayroong malaking bilang ng middleware (API) na ginawa sa Java at iba pang lengguwahe para pamamahala ng data sa XML man o sa gamit ang XML input o output. Mayroong suite ng tutoryal ng Java (na may source code at mga paliwang) na makikita sa http://developerlife.com/tutorials/.

Wag padalahan ng email ang FAQ editor ng mga tanong kaugnay ng iyong mga problema sa pagprogramming gamit ang Java. Itanong ito sa mga eksperto ng Java.

Q 4.8: Paano ko ipapasok o tatanggalin ang XML sa aking database?

Itanong sa gumawa ng iyong database.

Halos lahat ng mga sistema ng pamamahala ng database ngayon ay nagbibigay ng XML import at export module upang kumonekta sa mga application ng XML sa mga database.

Sa ilang mga maliit na kaso magkakaroon ng 1: 1 tugma sa pagitan ng mga pangalan ng patlang sa database table at mga uri ng elemento ng mga pangalan sa XML Schema o DTD, ngunit sa karamihan ng mga kaso ang ilang mga programa ay kinakailangan upang maitatag ang nais na tugma. Ito ay karaniwang maaaring maimbak bilang isang pamamaraan upang ang kasunod na mga gamit ay mga utos o tawag lamang sa may-katuturang mga parameter.

Bilang kahalili, ang karamihan sa mga sistema ng database ay nagbibigay ngayon ng isang XML na format ng dump na nagpapahintulot sa iyo na i-export ang isang talahanayan bilang-ay, halimbawa sa pamamagitan ng nakapaligid sa mga halaga ng patlang sa mga tag na tinatawag na pagkatapos ng mga fieldname. Halimbawa, ang opsyon na -X sa mysql na utos ay gagawin ito, hal.

$ echo 'select * from news;' | mysql -X -u username -p password dbname

<?xml version="1.0"?>

<resultset statement="select * from news"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<row>

<field name="id">1</field>

<field name="stamp">0</field>

<field name="title"></field>

<field name="date">0000-00-00</field>

<field name="time">test</field>

<field name="description">News Engine test item 1</field>

</row>

</resultset>

$

 

Sa hindi gaanong maliit, ngunit simpleng mga kaso, maaari mong i-export sa pamamagitan ng pagsulat ng isang karaniwang gawain na ang mga format ay ang output bilang isang dokumento ng XML sa pamamagitan ng pagdaragdag ng mga may-katuturang mga tag bilang mga literal bago at pagkatapos ng bawat halaga ng data; at maaari kang mag-import sa pamamagitan ng pagsulat ng isang XSLT o katulad na pagbabagong-anyo na naka-format ang data ng XML bilang isang load file sa ginustong format ng iyong database. Halimbawa, kasama ang sumusunod na data:

<news>

<entry xml:id="N1" stamp="0" date="0000-00-00" time="test">

<title></title>

<description>News Engine test item 1</description>

</entry>

</news>

 

Pwede mo itong gawing MySQL statement gamit ang lxprintf:

$ lxprintf -e entry \

'INSERT INTO `news` VALUES (%s,%s,"%s","%s","%s","%s");\n' \

'substring(@xml:id,2)' @stamp title @date @time description \

mynews.xml | mysql -u username -p password dbname

 

Binibigay nito ang mga sumusunod na command sa MySQL

INSERT INTO `news` VALUES (1,0,"","0000-00-00","test","News Engine test item 1")

 

Ang mga gumagamit mula sa isang database o computer science background ay dapat magkaroon ng kamalayan na ang XML ay hindi isang sistema ng pamamahala ng database: ito ay isang sistema ng teksto ng markup. Habang maraming mga pagkakatulad, ang ilan sa mga konsepto ng isa ay hindi umiiral sa iba pang: Ang XML ay hindi nagtataglay ng ilang mga tampok na tulad ng database sa parehong paraan na ang mga database ay hindi nagtataglay ng mga markup na gusto. Ito ay isang pangkaraniwang error na naniniwala na XML ay isang DBMS tulad ng Oracle o Access at samakatuwid ay nagtataglay ng parehong mga pasilidad. Hindi ito.

Ang mga gumagamit ng Database ay dapat basahin ang artikulong ito (Salminen and Tompa, 2001) [salamat kay Bart Lateur sa pagkilala dito] Si Ronald Bourret din ay namamahal ng isang magandang pagkukunan ng kaalaman tungkol sa XML at Databases na tinutukoy native XML na mgadatabases sa http://www.rpbourret.com/xml/XMLAndDatabases.htm.

Mayroon ding impormasyon tungkol sa XQuery (XQL) Language sa mga takda sa Searching.

Q 4.9: Ano ang namespace?

Napangalanan na DTD/Schema o isang pragment na kinilala ng URI (URL).

Isininulat ni Randall Fowle:

Ang namespace ay isang koleksyon ng elemento at attribute names na kinikilala ng reference ng Uniform Resource Identifier. Ang reference ay maaaring magpakita sa mga root element bilang value ng xmlns attribute. Halimbawa, ang namespace reference para sa XML na dokumento ay ang root element <x> mag-iitsurang ganito:

 

<x xmlns="http://www.company.com/company-schema">

 

Mahigit sa isang namespace ang pwedeng magpakita bilang isang dokumento ng XML, upang hayaan ang isang pangalan (name) na magamit ng higit pa sa isang beses. Ang bawat reference ay kayang magdeklara ng prefix na maaaring magamit ng bawat pangalan, kaya ang kaninang halimbawa ay mag-iitsurang ganito

 

<x xmlns:spc="http://www.company.com/company-schema">

 

Nag magnonominate sa namespace para sa 'spc' na prefix:

 

<spc:name>Mr. Big</spc:name>

 

Isinulat ni James Anderson:

Sa pangkalahatan, tandaan na ang binding ay maaari ring maapektuhan ng isang default value para sa isang attribute ng DTD.

Ang reference ay hindi nangangailangan ng pisikal na file; isa lamang itong paraan upang makilala sa mga namespace. Dapat sabihin ng reference na nakatingin sa dokumento ng XML kung saan makahahanap ng mga mga ibig-sabihin ng element at attribute names na gumagamit sa partikular na namespace. Si Ronal Bourret ay ang nagpapanatili ng Namespace FAQ sa http://www.rpbourret.com/xml/NamespacesFAQ.htm.

Q 4.10: Anong mga software ng XML ang pwedeng gamitin?

Libo-libong programa ang maaaring gamitin. Masyadong marami kung ililista ko rito.

Daan-daan, posibleng libo-libong programa. Ang mga detalye ay hindi na nakalista sa FAQ na ito dahil napakarami nila at napakabilis ng pagbabago nila: tingnan ang mga XML Web pages sa http://xml.coverpages.org/ at mag-abang sa mga anunsyo sa mga mailing lists at mga newsgroups.

Para sa detalyadong gabay sa mga halimbawa ng programa ng XML at ang mga konsepto sa likod nito, tingnan ang libro ng editor (Flynn, 1998). Maraming implementasyon ng mga pangunahing XML processing at query languages (XSLT2, XQuery, and XSL:FO), ang pinakasikat siguro ay ang Saxon.

Ang mga SGML software tulad ng Jade at SP (ngayon ay OpenSP) ay ang pinakapinagkukuhanan parin ng mga karamihang kagamitan na humahawak ng XML, mas lalo na ang onsgmls validating parser at sgmlnorm (tingnan sa Converting valid HTML to XHTML).

Ang mga detalye sa mga XML na software ay nasa XML Cover Pages. Para sa mga browser, tingnan ang tanong sa XML Browsers at ang detalye ng xml-dev mailing list para sa developer ng software. Si Bert Bos ay mayroong listahan ng ibang XML developments sa Bison, Flex, Perl, at Python. Ang mga matagalan ng engine na ginagamit sa pagkumbersyon at paggawa ng aplikasyon tulad ng Omnimark, at SGMLC ay mayroong kapasidad ng XML at lahat sila'y mayroong API.

XML Editors

Ang pagpili ng editor ay isa sa mga pinakamahirap na gawain, dahil lahat ay may iba't-ibang kinakailangan at antas ng kaalaman. Kaya ang mukhang simple sa isang gumagamit ay napakahirap pala sa iba. Lahat ng XML editor ay ginagabayan ang mga gumagamit sa paggawa o pagpapanatili ng mga dokumentong XML - yan ang kanilang silbi sa buhay.

Ang mga pinakasimple sa mga ito ay kayang subaybayan ang matching pointy brackets, start-tags at end-tags, at balanced quotes, papunta sa isang well-formed na file. Ang ibang malalakas na editor ay kaya basahin ang DTD o Schema at magbigay ng menu choices para sa pagmanipula ng elemento at pag-edit sa attribute, at pigilan ang paggawa sa mga maling dokumento. Ang mga pinakamalalakas ay kaya ring gamitin para sa paggawa ng DTD o Schema, at pagproseso ng XML gamit ang XSLT o XSL:FO.

Ang iba ay text mode editors - ipinakita nila ang lahat ng markup at ang teksto na walang nakatago, madalas na gumagamit ng kulay upang makilala ang mga markup character at indentation upang ipakita ang istraktura. Ang karamihan sa mga editor ay may kasabay na mode ng typographic, gamit ang isang stylesheet upang ma-format ang display, kaya lumilitaw ka na pag-edit ng isang ganap na mga uri ng view ng dokumento (kadalasang tinatawag na WYSIWYG, kahit na hindi talaga ito). Ang mga editor ng text-mode ay nababahala sa ilang mga gumagamit dahil ang nakikitang bracket ay nakikita (sa palagay nila ito ay programming); Ang mga kasabay na editor ng typographic ay nag-aalala sa iba pang mga tao dahil hindi nakikita ang mga walang kabuluhan na mga bracket, na nagpapahirap upang makita kung saan nagsisimula at nagtatapos ang mga bagay.

Ang mas sopistikadong mga editor ay Programmable, kaya ang kalikasan at epekto ng markup at mga pagkilos ng gumagamit ay maaaring limitado o pinahusay ng mga script sa JavaScript, VBscript, Python, Tcl, Lisp, atbp; o XSLT.

Wag matukso sa paggamit ng non-XML editor tulad ng Notepad, vi, o textedit para sa mga XML na dokumento: ikaw lang rin ang mahihirapan, iiyak at magagalit. Maging handa. (Ang hiawalay ng XML notepad ng Microsoft ay maaaring gamitin para sa mga maliliit na bagay, pero di para sa paggawa ng DTD o Schema.)

Ang Wikipedia ay may mga paghahambing sa mga editor sa http://en.wikipedia.org/wiki/Comparison_of_XML_editors ngunit di ito nagbibigay ng masaydong makabuluhang impormasyon. Mayroong lumang (2004) comparative paper sa pagpili ng XML editor mula kay Thijs van den Broek na makakatulong sa mga metodolohiya ngunit ang mga produkto'y luma na.

Karamihan sa mga editor ay walang bayad o libre ang pagsubok, pero sa aking kaalaman, ang katangi-tanging open-source ay ang Emacs na may nxml-mode (par sa W3C at RNG schemas) o psgml-mode (para sa DTD).

Mayroong pahina na maaaring makatulong sa mga Dutch na gumagmit sa http://xml.beginthier.nl/.

Mga impormasyon para sa mga developers ng sistema ng Chinese XML ay mahahanap sa Now! website ng Academia Sinica: http://www.ascc.net/xml/ Mayroon itong mga FAQ at test files.

Q 4.11: Mga naglahong Software

Mga kapaki-pakinabang ng mga software na biglang naglaho.

Napakaraming mahahalaga at produktibong programa ang bigla na lang naglaho. Minsan ang kumpanya ay bigla na lang nalugi at nawala; minsan ito'y pribado o bukas sa lahat na pangangahas kaya kailangan iabandona ng gumawa; minsan naman (pinakamalala sa lahat) ang kumpanya ay nabili na ng isa pang kumpanya na wala talagang alam sa XML, at biglang nabili uli ng isa pang kumpanya na talagang walang alam dito, kaya ang mga produkto ay nagiging abandonware.

Ito'y listahan ng mga alam at subok na namin, pero sa ibang pagkakataon ay kailangan parin ng kanilang mga installation disks, pero maaaring paring magamit kahit ito'y luma na.

Near & Far (Microstar)

Isang grapikal na SGML DTD-design na programa para sa Windows 95, na halos kakabot lang era ng XML (pwedeng magluwas sa XML Declaration Syntax, pero di ang mag-angkat). Nakilala dahil madaling gamitin at sa magandang dayagramo ng istraktura ng dokumento (ginagamit parin ng iilang apisyonado para sa dokumentasyon).

DynaText/DynaTag/DynaWeb (Electronic Book Technologies)

Isang suite ng Windows 95/NT software na naglalaman ng SGML database at web server sa pagserve ng HTML nakonvert mula sa dokumento ng Word.

Ang pangunahing sangkap ay DynaTag, na nagpapahintulot sa iyo na mag-import ng isang dokumento ng Word, at tukuyin ang mga pattern sa (non-XML) markup na nakalagay sa mga elemento sa ad-hoc output SGML document. Binibigyang-daan ka ng mga mappiling mappiling gumagamit na mag-encapsulate ng mga item sa listahan sa isang tunay na listahan, at sa pangkalahatan ay labanan ang iyong paraan sa pamamagitan ng gulo ng mga .doc na Word file upang makabuo ng na-tag na output. Ito ay maaaring pagkatapos ay maiproseso sa isang conformance sa isang kilalang DTD. Na may sapat na mga halimbawa ng mga katulad na binuo na mga file ng Word, maaari itong maging maluwag sa isang buong koleksyon ng mga ito para sa maramihang conversion.

Microsoft SGML Author for Word

Kahit ganito ang pangalan, isa itong converter, hindi editor. Gumamit ito ng mappings para Word style papuntang SGML markup at kayang gawin ang circular lossless na kumbersyon. Para sa mga autor na komunidad na di kaya o ayaw matuto mag-autor o mag-edit sa SGML, nagbibigay daan ito sa pag-autor sa Word at pag-edit sa SGML, at ibinabalik ang dokumento sa Word para ma-edit ng mga autor. Isang check-box lamang para sa isang kontrata, pero di ito kailanman sinuportahan ng Microsoft, at kahit ang mga helpdesk ay di naniniwala na totoo ito.

Panorama (SoftQuad)

Isang plugin para sa Netscape na pumapayag sa mga SGML na download na may referenced na stylesheet (na gumagana naman kapag nasanay ka sa kakaibang pagrereference nito). Itinalaga rin nito ang HyTime bidirectional links, at maaari mo ring ipublish ang iyong linkset.

Magagamiat rin bilang Panorama Publisher, isang mas malaking bersyon na bilang standalone na porma para sa malakihang paglimbag ng dokumento. Ang editing pane ng stylesheet nito ay nanatili paring pinakamagandang halimbawa ng interactive style manipulation.

Author/Editor (SoftQuad)

Isa sa mga totoong synchronus na tipograpikong editor para sa SGML (at XML, sa inkarnasyon nito bilang XMetaL). Malawakang ginagamit ito kasama ang mas simpleng kapatid nito ang HoTMetaL.

Q 4.12: Ano ang aking impormasyon? Ang DATA o ang DOCUMENT?

Depende kung saan mo ito gagamitin.

Maraming importanteng pagkakaiba ang namamagitan sa pagitan ng mga nangungunang klase ng XML application at kung paano sila ginagamit.

Dalawang klase ng aplikasyon ang kadalasang kinikilala bilang 'document' at 'data' application, at ito'y makikita sa software, na kadalasan ay (di palagi) nakalayon para sa isang klase o isa pa.

Stilong pangdokumento na aplikasyon (Document-style applications)

Ang mga ito ay tulad ng trabaho ng mga tradisyunal na publisher: ang teksto at mga imahe sa isang nakabalangkas na kapaligiran, na may mga font at pag-format. Sa karamihan ng mga kaso na ito ay kasama ang mga pahina ng Web pati na rin ang materyal na nakalaan para sa PDF o i-print tulad ng mga libro at magasin. Ang tanda ng mga application ng dokumento ay ang paggawa ng mabigat na paggamit ng Mixed Content (hal. Subelements sa text).

Stilong pagdata na aplikasyon (Data-style applications)

Ang mga ito ay matatagpuan sa karamihan sa e-commerce, mga serbisyo sa web, at proseso o kontrol ng application, na may XML na ginagamit bilang isang lalagyan para sa impormasyong iniimbak o lumipas sa pagitan ng mga sistema, kadalasang hindi naka-format at hindi nakikita ng mga tao. Ang kanilang tatak ay ang kawalan ng Mixed Content, at ang pagkalat ng numeric o categorical data.

Mayroong isang ikatlong pangunahing lugar, Web Development, na ang mga kinakailangan ay madalas na hybrid, at sumasaklaw sa mga tampok ng parehong dokumento at mga aplikasyon ng data dahil naglalaman ang mga ito ng bahagyang static na mapaglarawang teksto at bahagyang dynamic na data.

Habang sa teorya posibleng gumamit ng data-class software upang makapagsulat ng isang nobela, o dokumento na uri ng software upang lumikha ng mga invoice, malamang na ito ay malubhang suboptimal. Dahil sa nature ng impormasyon na ginagamit ng dalawang klase, ang mga data-class na aplikasyon ay gumagamit ng Schemas, at ang document-class na aplikasyon ay ginagamit ang DTDs, pero mayroong konsiderableng pagpapatong.

Sa paraan kung saan ginagamit ang XML ay nahahati rin sa dalawa: ang XML ay pwede gamitin ng manu-mano o sa ilalim ng kontrol ng programa.

Manu-manong paggamit (Manual usage)

Nangangahulugan ito ng pag-edit at pagpapanatili ng mga file gamit ang isang editor, mula sa keyboard, nakikita ang impormasyon sa screen habang ginagawa mo ito. Ito ay angkop para sa mga indibidwal na mga dokumento, lalo na sa field ng pag-publish, para sa mga web page, at para sa mga developer na nagtatrabaho sa iisang pagkakataon tulad ng sample na mga file o mga template ng web site. Ang pagproseso ng manu-manong ay nagpapahiwatig din ng pagpapatakbo ng mga programa sa paggawa tulad ng mga format, mga converter, at mga query sa database nang isa-isa, gamit ang keyboard at mouse sa normal na paraan. Karamihan ng software para sa manu-manong paggamit ay maaaring tumakbo mula sa command line, na ginagawang mas madaling gamitin para sa mga one-off na application at sa mga nakatagong application tulad ng mga script ng Web.

Maipoprogramang paggamit (Programmable usage)

Ang ibig sabihin nito ay mga programa sa pagsulat na tumawag sa mga serbisyo ng software mula sa mga API, mga aklatan, o ng network upang mahawakan ang mga file ng XML mula sa loob ng programa. Ang mga XML file sa mga application ng data ay halos hindi na-edit ng kamay. Ito ang normal na paraan ng pagpapatakbo para sa mga aplikasyon ng e-commerce, web automation, mga serbisyo sa web, at iba pang mga proseso o mga kontrol ng application. May mga aklatan at mga API para sa maraming mga wika, kabilang ang Java, C, at C + + pati na rin ang karaniwang mga scripting wika tulad ng Python, Perl, Tcl, Ruby, atbp.

Dadag pa sa mga axes, mayroong kasalukuyang paraan sa pagproseso ng XML, memory-mapped o event-triggered, kadalasan na tinatawag sa kanilang pangalan ng kanilang orihinal na representasyon, ang Document Object Model (DOM) at ang Simple API para sa XML (SAX) .Parehong gumagamit ng modelo ng document engineering base sa mala-punong istraktura ng hierarchical na dokumentong markup na kilala bilang Grove. Sa modelong ito, lahat ng 'node' (impormasyon) mula sa pinakalabas na elemento hanggang sa lahat ng elemento at attribute sa bawat piraso ng di namarkahan na teksto ay makikilala. Para sa mga aplikasyon na gumagamit ng Schema, ang Post-Schema-Validation Infoset (PSVI, katumbas ng grove) ay tinukoy, na nagsasabi kung anong impormasyon ng parser ang dapat payagan sa aplikasyon.

Isinulat niJoe Fawcett:

(sa isang artikulo <eFIrHKtCGHA.2920@tk2msftngp13.phx.gbl>)

Ang 'node' ay isang generik na salita para sa maraming uri ng XML building blocks, kasama ang element: <myElement/>; attribute: <myElement myAttribute="myValue"/>; and text node: <my Text Node>

Mayroon ring mga komentong [Comment Declarations], Processing Instructions at ang di nakikitang Document Node na nagrerepresenta sa root ng XML na dokumento, pati narin sa iba.

Sa pinakasimpleng paliwanag, ang DOM-based application ay nagbabasa ng buong dokumento ng XML sa memory at nagbibigay ng programmable acces sa bawat node sa puno ng grove; kung saan sa SAX-based application naman ay nagbabasa ng XML na dokumento, at mga pangyayari na nagsimula dahil sa pangyayari ng node, kung saan ang patakaran at askoyn ay naprograma na bago pa ito. (Sa totoo lang ito'y napakakumplikado, at ang parehong paraan ay halos magkapareho.)

Ang parehong mga modelo ay nagbibigay ng isang abstract API para sa pagtatayo, pag-access, at pagmamanipula ng mga dokumento ng XML. Ang isang umiiral na abstract API sa isang partikular na programming language ay nagbibigay ng kongkretong API. Nagbibigay ang mga vendor ng kongkreto API na nagpapahintulot sa iyo na gumamit ng isa o iba pang paraan upang magtanong at mamanipula ang mga dokumentong XML. Ang parehong klase ng parser ay naimplementa sa maraming lengguwahe at maraming orperating systems at interface. Mayroong FAQ para sa parehong DOM at SAX.

Q 4.13: Kailangan ko bang baguhin ang aking mga software pang-server (server software) upang magamit ang XML?

Siguraduhin na nagpapadala ang iyong server ng XML files bilang teksto/xml.

Kapag ikaw ay nagpapadala lang ng static na files, ang mga pagbabago lang na kailangan mo ay siguraduhin na ang iyong server ay nagseserve ng .xml, .css, .dtd, .xsl, at kung ano pa mang uri ng files na gagamitin mo bilang MIME content (media) types.

Ang detalyeng ito'y makikita sa RFC 3023. Ang mga sikat na server software tulad ng Apache HTTPD ay alam na ito.

Kung hindi, ang lahat ng kailangan ang i-edit ang mga mime-type na files (o ang katumbas nito: bilang isang server operator na alam mo kung saan gagawin ito, tama?) At idagdag o i-edit ang mga may-katuturang linya para sa mga tamang uri ng media. Sa ilang mga server (hal. Apache), ang mga indibidwal na provider ng nilalaman o mga may-ari ng direktoryo ay maaari ring baguhin ang mga uri ng MIME para sa mga tukoy na uri ng file mula sa loob ng kanilang sariling mga direktoryo sa pamamagitan ng paggamit ng mga direktiba sa isang .htaccess na file. Ang mga kailangan ng uri ng media ay ang mga sumusunod:

  • text/xml para sa dokumento ng XML na madaling mabasa kahit ng kaswal ng mambabasa;
  • application/xml para sa dokumento ng XML na di agad mababasa ng kaswal na mambabasa;
  • text/xml-external-parsed-entity para sa mga external parsed entities tulad ng document fragments (hal hiwalay ng chapter na bumubuo sa isang libro) isasailalim sa readability distinction ng teksto/xml;
  • application/xml-external-parsed-entity para sa external parsed entities na isasailalim sa readability distinction of application/xml;
  • application/xml-dtd para sa DTD files at modules, kasama ang character entity sets.
Ang RFC ay may mga mungkahing nais idagdag tungkol sa paggamit ng +xml media type suffix sa pagkilala sa mga ancillary files tulad ng XSLT (application/xslt+xml).

Kapag nagpatakbo ka ng script na gumagawa sa XHTML na gusto mong tratuhin na XML kaysa HTML, kakailanganin mong baguhin upang makagawa ng relebanteng Document Type Declaration at ng tamang media type kapag kailangan ng iyong aplikasyon na sila'y mawasto.

Q 4.14: Maaari paring ba akong gumamit ng server-side inclusions?

Oo basta siguraduhin na ang kakalabasan ay kmukumporme sa XML

Gagana ito basta ang kakalabasan ay parte ng isang XML-conformant na file. (hal) kahit ano sa valid o well-formed).

Ang Server-side na tagapalit ng tag na scripting languages tulad ng shtml, PHP, JSP, ASP, Zope, etc ay nag-iimbak ng mga muntik maging wastong files gamit ang comments, Processing Instructions, o non-XML markup, na napapalitan sa punto ng serbisyo ng teksto o markup ng XML (di malinaw kung bakit ang iba sa mga sistema ay gumagamit ng non-HTML/XML markup). Mayroong ring XML-based na preprocessor para sa mga pormat tulad ng XVRL (eXtensible Value Resolution Language) na nireresolba ang mga espesyal na reperensya sa panglabas na data at kakalabas ng normalised na XML file.

Q 4.15: Maaari ko parin ba (at ang aking mga taga-akda) gamitin ang client-side inclusions?

Oo basata kumukumporme ang kinalabasan sa XML.

Parehong patakaran ang umiiral para sa server-side inclusions, kaya kailangan mong siguraduhin na ang mga nakabaon na code na naipapasa sa mga third-part engine (hal tawag sa SQL, VB, Java, atpb) ay hindi naglalaman kahit anong karakter na baka makilala bilang XML markup (hal. Walang angle-bracket o ampersand). Gumamit ng CDATA marked na seksyon upang maiwasan ng iyong XML application ang maiparse ang nakabaon na code, o gumamit ng &lt; at &amp; na character entity references.

Q 4.16: Kailangang kong gumawa ng overview ng XML para sa aking manager/client/investor/advisor. Ano ang dapat kong sabihin?

Walang may-aring, pangkalahatang markup (multi-purpose flexible markup)

Isinulat ni Tad McClellan:

  • Ang XML ay hindi markup language. Isa itong 'metalanguage', na isang lengguwaheng hinahayaan kang gumawa ng sarili mong markup languages (tingnan ang definition).
  • Ang XML ay isang markup language, hindi isang programming language. ang XML ay data: wala itong ginagawa, mayroong ginagawa dito.
  • Ang XML ay walang may-ari: ang iyong data ay di pwde i-hostage ng kahit na sino.
  • Ang XML ay pinapayagan na gamitin ang iyong data sa maraming bagay.
  • Ang well-designed XML na aplikasyon ay kadalasan hinihiwalay ang 'laman' kaysa sa 'presentasyon'. Dapat mong tukuyin kung ano ang isang bagay imbis kung ano itsura nito (maliban kung ito'y numerical o categorical na data content na di pinapakita sa tao).
Ang pagsabi an ang 'data ay nasa XML' ay walang kwentang kasabihan, kapareho ng pagsabi na ang 'libro ay nasa natural nitong lengguwahe'. Upang maging kapani-pakinabang, kailangan tukuyin na 'ginamit ang XML upang matukoy ang aming sariling markup language' (at sabihin kung ano it), kapareho ng 'ang libro ay nasa salitang French'.

Isang halimbawa ay ang multipurposing at separation na kadalasan kong nakikitang ginagamit sa mga paramsyutikong kumpanya. Mayroon silang malaking base ng data sa isang partikular na gamot na kailangan nilang ipalimbag bilang: Mayroon silang malaki base ng partikular na droga na kailangan nilang ipalimbag bilang:

  • Ulat sa FDA;
  • Impormasyon ng gamot para sa mga tagapaglimbag ng mga drug directory/katalogo;
  • 'ireseta mo ko!' na brosyur na pinapadala sa doktor;
  • Mga maliliit na papel na nasa kahon;
  • Tatak sa mga bote;
  • Dalawang pahina ng manipis na print kasunod ng ad ng Reader's Digest;
  • Instruksyon para sa mga pasyente na piniprint ng lokal na parmasyutiko;
  • Atbp.
Nang walang paghihiwalay ng nilalaman at pagtatanghal, kailangan nilang mapanatili ang mahalagang identical na impormasyon sa 20 na lugar. Kung mawalan sila ng isang lugar, ang mga tao ay mamatay, ang mga abogado ay mayaman, at ang kompanya ng droga ay nakakakuha ng mahirap. Sa XML (o SGML), pinapanatili nila ang isang hanay ng maingat na napatunayan na impormasyon, at isulat ang 20 na programa [o isang programa na may 20 mga output (Ed)] upang kunin at i-format ito para sa bawat aplikasyon. Ang parehong 20 na mga programa ay maaari na ngayong mailalapat sa lahat ng daan-daang gamot na kanilang ibinebenta.

Sa Web development, ang pinakamalaking bagay na inaalok XML ay ang ayusin ang mga mali sa HTML:

  • Ang mga browser ay pumapayag na ipakita ang di sumusunod na HTML;
  • Ang HTML nakarestrikto lamang sa isang set ng markup ('tagset') .
Kung hayaan mo ang sira na trinabahong HTML (na ipakita), pagkatapos ay walang gana pa upang ayusin ito. Kaya ang mga pahina ng web ay nagta-tag ng sopas na walang silbi para sa karagdagang pagproseso. Tinutukoy ng XML na ang pagpoproseso ay hindi dapat magpatuloy kung ang XML ay hindi sumusunod, kaya patuloy kang nagtatrabaho hanggang sa ito ay sumusunod. Ito ay higit na gumagana sa harap, ngunit ang resulta ay hindi isang patay na dulo.

Kung nais mong markahan ang mga pangalan ng mga bagay: mga tao, lugar, kumpanya, atbp sa HTML, wala kang masyadong pagpipilian upang makilala ang mga ito. Pinapayagan ka ng XML na pangalanan ang mga bagay tulad ng kung ano ang mga ito:

<person>Charles Goldfarb</person> worked at <company>IBM</company>

 

gives you a flexibility that you don't have with HTML:

 

<B>Charles Goldfarb</B> worked at <B>IBM</B>

 

Gamit ang XML, di mo kailangan ipilit ang iyong data sa isang markup na nirerestrikto ang iyong mga pagpipilian.

Q 4.17: Mayroon bang conformance test suite para sa processor ng XML?

Oo, mayroon noon: https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xslt

Si James Clark ay may koleksyon ng test cases para sa pagsubok sa mga XML pareser sa http://www.jclark.com/xml/ na may kasamang conformance test laban ang 'canonical XML'.

Isinulat ni Carmelo Montanez:

Ang NIST ay bumuo ng mga pagsusulit para sa XSLT / XPath, na magiging bahagi ng opisyal na OASIS XSLT / XPath suite (hindi pa nilalabas). Ang inaasahang output ay maaaring bahagyang naiiba mula sa isang pagpapatupad sa isa pa. Ang komiteng teknisyong OASIS XSLT ay may solusyon para sa problemang iyon, gayunpaman ang aming mga pagsubok ay hindi pa nagpapatupad ng gayong solusyon. Ipadala ang mga komento sa carmelo@nist.gov.

Isinulat ni Jon Noring:

Para sa mga interesado, kumuha ako ng kasalukuyan at kumpletong Unicode 3.0 'cast' ng mga karakter at kanilang mga hex na code, at lumikha ng isang simpleng dokumentong XML nito upang subukan ang mga XML browser para sa Unicode conformity. Hindi pa tapos na - Kailangan kong magdagdag ng mga komento at upang ayusin ang pagpapakita ng mga rtl character (ie Hebrew, Arabic). Makikita ito sa: http://www.windspun.com/unicode-test/unicode.xml. Ito'y medyo malaki, halos 900k ang laki, kaya maghanda. Ang IE5 nagbibigay ng maraming karakter sa XML na dokumentong ito - at para sa mga nirerender ito ay tama ang kanilang pagkakagaw. Hihintayin ko paggawa ng Opera nito. Di ko pa ito nasubukan sa kasalukuyang bersyon ng Mozilla/Netscape para sa Unicode na magkumpome.

Q 4.18: Mayroon na akong nakuhang SGML DTDs: paano ko ito maco-convert para magamit sa XML?

Manu-manong pag-edit o gumamit ng software na tulad ng software tulad ng Near+Far Designer.

Maraming proyekto na magagamit para ma-convert ang kumon o sikat na SGML DTD sa XML na pormat (halimbawa, TEI DTD (Lite at full na bersyon) at ang DocBook DTD ay magagamit sa parehong SGML at XML, sa Schema at DTD na pormat).

Isinulat ni Seán McGrath:

Upang i-convert ang SGML DTDs sa XML:

  1. Walang katumbas ng Deklarasyon ng SGML. Kaya ang mga keyword, character set atbp ay nakaayos na;
  2. Ang pagpapaikli ng tag (Tag Minimisation) ay di pwede, kaya ang <!ELEMENT x - O (A,B)> ay magiging <!ELEMENT X (A,B)> at <!ELEMENT x - O EMPTY> ay magiging <!ELEMENT X EMPTY>;
  3. #PCDATA ay dapat lang nasa pinaka-kaliwa sa isang OR na modelo, hal. <!ELEMENT x - - (A|B|#PCDATA|C)> (in SGML) ay magiging <!ELEMENT x (#PCDATA|A|B|C)*>, at <!ELEMENT x (A,#PCDATA)> ay ilegal;
  4. Walang mga CDATA, RCDATA na element [dineklarang nilalaman];
  5. Ang ibang SGML attribute types ay di pwede sa XML hal NUTOKEN;
  6. May ibang SGML attribute defaults ang di pwede sa XML hal. CONREF at CURRENT;
  7. Ang mga Comments ay di pwede kahilera ang declarations like
<!ELEMENT x - - (A,B) -- an SGML comment in a declaration -->

 

  1. Karamihan sa mga opsyonal na SGML features ay wala sa XML: lahat ng klase ng tag minimisation (OMITTAG, DATATAG, SHORTREF, atbp); Link Process Definitions; Multiple DTDs kada dokumento; at marami pa: tingnan sa http://www.w3.org/TR/NOTE-sgml-xml-971215 para sa listahan ng bits ng SGML na tinanggal para sa XML;
  2. Huli sa lahat, walang CONCUR!
  3. Merong importanteng pagkakaiba sa internal at external subset na parte ng DTD sa XML: ang mga Marked na seksyon ay makikita lamang sa external subset; at ang Parameter Entities ay dapat mapalitan ng buong deklarasyon sa internal subset na porsyon ng DTD, hal. Ang sumusunod ay di wastong XML:
<!DOCTYPE x [

<!ENTITY % modelx "(A|B)*">

<!ELEMENT x %modelx;>

]>

<x></x>

 

Para sa impormasyon, tingnan sa McGrath (1998).

Q 4.19: Paano maglagay ng isang DTD (o fragment) sa isa pa?

Gumamit ng parameter entity, katulad sa SGML

Gumagana ito ng parang sa SGML. Una ay kailangan mong ideklara ang entity na gusto mong isama, at ireference mo ito sa pangalan bilang parameter entity:

 

<!ENTITY % mylists SYSTEM "dtds/listfrag.ent">

...

%mylists;

 

Ang naturang mga deklarasyon ayon sa kaugalian ay magkakasama sa tuktok ng pangunahing DTD na file, kung saan maaari silang mapangasiwaan at mapanatili, ngunit hindi ito mahalaga hangga't ipinahayag ang mga ito bago sila gamitin. Gumamit ka ng Parameter Entity Syntax para sa (ang porsyentong pag-sign) dahil ang file ay isasama sa DTD na oras ng pag-compile, hindi kapag ang dokumento ng dokumento mismo ay mai-parse.

Paalala na ang URI ay kailangan sa XML bilang System Identifier sa lahat external file reference: ang patakaran na sinusunod para sa pag dereference ng URI ay nag-aaply (ipalagay na pareho ang paraan, server, at direktorya sa containing document). Pwede rin gumamit ng Formal Public Identifier kasunod ang patakaran katulad sa iba.

Q 4.20: Paano ako maglalagay ng isang conditional statement sa aking XML?

Di ito pwede: Hindi isang programming language ang XML.

Di pwede: ang XML ay hindi programming language, kaya di pwede ang

 

<foo if{DB}="A">bar</foo>

 

Pero pwede kang magkaroon ng criteria sa isang Schema, DTD, o prosesor, at ang ibang DTD ang nagbibigay ng attribute para sa conditional na pagproseso.

Kung kailangan mong gumawa ng isang elementong opsyonal, batay sa ilang panloob o panlabas na pamantayan, magagawa mo ito sa isang Schema. Ang mga DTD ay walang panloob na mekanismo ng sanggunian, kaya hindi posible na ipahayag ang ganitong uri ng kondisyon sa isang DTD sa indibidwal na antas ng elemento.

Posible upang ipahayag ang kondisyon ng presence-or-absence sa isang DTD para sa buong dokumento, sa pamamagitan ng paggamit ng Parameter Entities bilang Boolean switch upang isama o huwag pansinin ang ilang mga seksyon ng DTD batay sa mga setting alinman sa hardwired sa DTD o ibinibigay sa panloob na subset. Ang parehong TEI at Docbook DTDs ay gumamit ng mekanismong ito upang ipatupad ang modularity.

Bilang kahalili maaari mong gawing ganap na opsyonal ang elemento sa DTD o Schema, at magbigay ng code sa iyong software sa pagproseso na sumusuri para sa pagkakaroon o kawalan nito. Inilalagay nito ang check hanggang sa yugto sa pagpoproseso: ang isa sa mga dahilan para sa Schemas ay upang magbigay ng ganitong uri ng pagsuri sa oras ng paglikha o pag-edit ng dokumento.

Sa mga wika sa pagpoproseso tulad ng XSLT, may mga construct para sa kondisyong pagproseso, kapwa para sa mga simpleng IFs at para sa mga eksklusibong kaso-by-case na mga pagpipilian:

<xsl:if test="@foo='bar'">

<xsl:text>Hello, world!</xsl:text>

</xsl:if>

<xsl:choose>

<xsl:when test="$type=1">

<xsl:apply-templates select="//*[@class='special']"/>

</xsl:when>

<xsl:when test="$type=2">

<xsl:apply-templates select="/foo/bar"/>

</xsl:when>

<xsl:otherwise>

<xsl:apply-templates/>

</xsl:otherwise>

</xsl:choose>

 

Ang DocBook at ibang DTDs at Schemas ay nagbibigay ng attributes sa ibang elemento para sa espesipikasyon ng effectivities, sinsabi kung anong parte ng dokumento ang umaandar sa kung anong sitwasyon. Ang isang processing software ay kaya itong ibukod at iproseso.

Q 4.21: Ano ang istorya ng XML at EDI?

Papunta na doon: marami pang tatrabahuhin at pagkakasunduan.

Ang Electronic Data Interchange ay nagamit na sa e-commerce ng maraming na taon upanga magpalit ng dokumento sa pagitan ng dalawang komersyal na partner sa isang transaksyon. Nangangailangan ito ng espesyal na proprietary software at ito'y napakamahal ipatupad para sa maliit at kalagitnaang mga enterprises. Mayroong mga galawa upang mapagana ang EDI na dokumento na umandar sa loob ng XML. Mayroon mga sinusunod na alituntunin sa http://www.eccnet.com/xmledi/guidelines-styled.xml at http://www.geocities.com/WallStreet/Floor/5815/guide.htm.

Ang pinakamalaking epekto ng EDI ay ang pag-ahon ng mga ang mga sumusubok sa istandardisasyon para sa XML business documents at transactions. Ang istandard na ito ay magkasamang iniisponsor ng OASIS at United Nations/CEFACT ay ebXML (Electronic Business XML) na nagbibigay ng Schemas para sa karaniwang transaksyong pangkomersyal na uri ng dokumento. Ang mga normal na dokumentong pag-opis (liham, ulat, spreadsheets, atbp) ginagawa na gamit ang mga materyal sa ilalaim ng pamumuno ng OASIS Open Office XML Formats TC, nakadetalya sa itaas. Ang ibang istandard tulad ng OAGI at RosettaNet ay sinusubukan pa ang pagpapagana sa ebXML.

Karagdagan sa mga buong istandard na ito, maraming set ng shims, interoperability tools, at component libraries tulad ng XML Common Business Library (xCBL).

Seksyon 5: Reperensiya (References)

Q 5.1: Reperensiya

May mas malaking bibliograpiya ng XML at SGML sa http://xml.coverpages.org/biblio.html.

Ang listahang ito'y sinasakop lamang ng mga dokumentong na direktang binaggit sa sa FAQ na ito.

References

  1. Bray, Tim; Jean Paoli; CM Sperberg-McQueen; Eve Maler; and François Yergeau [editors] (2004) Extensible Markup Language (XML) 1.0, Boston : W3C.
  2. DuCharme, Bob (1999) XML: The Annotated Specification, Upper Saddle River, NJ : Prentice Hall PTR, ISBN 0-13-082676-6.
  3. Ensign, Chet (1995) 'If SGML Is So Smart, How Come It Ain't Rich?'. In Proc. SGML'95, Boston, MA, December 1995.
  4. Flynn, Peter (2014) Formatting Information: An introduction to typesetting with LATEX, Cork, Ireland : Silmaril Consultants.
  5. Flynn, Peter (1998) Understanding SGML and XML Tools, Boston, MA : Kluwer, ISBN 0-7923-8169-6.
  6. Flynn, Peter (1995) 'Making more use of markup'. In Proc. SGML'95, Boston, MA, December 1995.
  7. Lamport, Leslie (1994) LATEX: A Document Preparation System, Reading, MA : Addison-Wesley, ISBN 0-201-52983-1.
  8. Maler, Eve and Jeanne el Andaloussi (1995) Developing SGML DTDs: From Text to Model to Markup, Upper Saddle River, NJ : Prentice Hall PTR, ISBN 0133098818.
  9. McGrath, Seán (1998) XML by Example: Building E-Commerce Applications, Upper Saddle River, NJ : Prentice Hall PTR, ISBN 0139601627.
  10. Pawson, Dave (2002) XSL-FO: Making XML Look Good in Print, Sebastopol, CA : O'Reilly, ISBN 0-596-00355-2.
  11. Salminen, Airi and Frank Tompa (2001) 'Requirements for XML Document Database Systems'. In Proc. ACM Symposium on Document Engineering, Atlanta, GA, November 2001.
  12. Sperberg-McQueen, Michael and Lou Burnard [editors] (2002) 'Gentle Introduction to XML'. In 'TEI P4: Guidelines for Electronic Text Encoding and Interchange', Oxford, Providence, Charlottesville, Bergen : Text Encoding Initiative Consortium.
  13. Truss, Lynne (2003) Eats, Shoots & Leaves: The Zero-Tolerance Approach to Punctuation, London : Profile Books, ISBN 1-86197-612-7.
Q 5.2: Gaano na kalayo ang ating narating?

Sa walang-hangganan at higit pa! (To infinity and beyond!)

Ang pagpapatakbo ng pasilidan para sa search sa FAQ na ito ay nakagawa ng mga interesanteng mga resulta mula sa notipikasyon ng parehong tugma and di tugma. Ang Sex ay bumaba na sa ika-10 pwesto.

  • Ang pinakamadalas na hinihanap (5% pangkalahatan) ay ang mga mag-isang mga karakter, character entity names man ito o numeric na values, o isa sa mga markup na karakter (< or &).
  • Sa mga kasalukuyang mga buwan, ang pangalawang pinakamalaking kategorya ay ang salitang dtd (3%).
  • Pangatlo ay ang CDATA na nasa 2% (di nakakasurpresa dahil sa abuso ng pagkalat nito).
  • Sa pang-apat pantay sa 1% ay ang XSD at XSL, na di tinukoy dito dahil may sarili silang mga FAQ
Ang mga kakaiba ay makikita sa kailalim-laliman tulad ng user galing Broomfield, CO, na nagtype ng 'How can I analyze a telephone to understand it better?' (subukan mong paghiwahiwalayin); isa na galing sa Philippines (wut??) na gustong malaman kung paano 'describe the five fundamental interactions between X-rays or Gamma rays with matter' (tingnan sa DS9); ang isa mula sa Culver City, CA, na nagtanong kung 'how are echinodermata organisms different from lower invertebrates?' (parang may pake ako?) at ang isa galing Lexington, KY, na nagtanong kung 'How do I add two text fields?'

Petsa: Fri, 09 Jul 1999 14:26:17 -0500 (EST)

Mula: The Internet Oracle <oracle@cs.indiana.edu>

Paksa: The Oracle replies!

Kay: <address-removed>

X-Planation: ang X-face ay pwede makita sa ftp.cs.indiana.edu:/pub/faces.

Ang Internet Oracle ay pinag-isipan ng mabuti ang iyong tanong. Ang iyong tanong ay:

> Oh Oracle na katali-talino, nakikita ang lahat, alam ang lahat,

> sa iyong kaalaman sagutin mo ang aking hiling:

>

> Ang XML ba ay talagang i-cut ang mustard?

At bilang sagot, nagsalita ang Oracle:

Dahil ang XML ay isang subset ng SGML, at ang SGML,

ay meron <cut mustard> tag, kaya oo ang sagot ko.

May utang ka kay Oracle na B1FF parser.

 

Para sa mga SGML-curious na mga mambabasa, ang sagot ay:

 

<!element cut - o empty>

<!attlist cut mustard (mustard) #required>

<!-- :-) -->

 

Q 5.3: Hindi isang XML FAQ

Hindi kadalasang tinatanong na mga katanungan

Isa itong listahan ng mga paksa na tinatanong ng mga tao or hinahanap ang sagot na may kaugnayan sa XML FAQ, na hindi direktang konektado sa XML at mga teknolohiya nito, o mga kadalasang tinatanong na tanong. Mayroon din itong mga depinisyon para sa mga users nakarating sa XML galing sa ibang ruta at di tumambad sa document publishing na karanasan.

Ang mga mambabasa ay baka magustuhan din tumingin sa FAQ ni Joe English na 'Not the SGML FAQ' sa http://www.flightlab.com/~joe/sgml/faq-not.txt.

AJaX

Asynchronous HTTP, Javascript, at XML.Isang teknik kung saan pinapaganda nito ang pag-ugnay sa mga web pages kung saan ang browser scripting ay nakakatuklas ng actibidad mula sa user at paunang kinukuha ang kailangan na data ng di magkasabay mula sa isang imbakan ng XML, imbis na naghihintay sa user na pumindot ng link at irequest it ng sabay sa server

Attributes

Ito'y mga bagay ng metadata o metainformation (impormasyon tungkol sa impormasyon) na maaaring idagdag sa start-tag ng elemento. Kadalasan ang attributes ay isang paraan nag pagpapaganda ng depinisyon, paggamit, o ibang kalidad ng elemento. Kinukuha nito ang porma ng name at ng kotang value kasama ang equals na simbolo. Hal.

 

<part xml:id="B22" catnum="51N1573R" level="App">Left-handed

Screwdriver</part>

 

Dapat sunnding ng attribute names ang patakaran ng XML para sa NAMES (tingnan sa spec). Kung ang iyong aplikasyon ay hindi gumagamit ng DTD o Schema, ang mga halaga ng attribute ay itinuturing na plain text (CDATA) at hindi maaaring magkaroon ng anumang espesyal na kahulugan sa XML (maliban sa xml: id at xml: lang, tingnan sa ibaba). Sa isang DTD o Schema, ang mga katangian ay maaaring italaga ng datatypes, ang pinakakaraniwang pagkatao (gamit ang terminong DTD para sa pagiging simple):

ID or IDREF

Ang mga halaga ng attribute ng ID ay dapat na Mga Pangalan ng XML (walang mga puwang na dapat magsimula sa isang letra) at dapat itong maging kakaiba sa isang dokumento. Maaaring mangyari ang isang halaga ng katangian ng IDREF anumang dami ng beses, ngunit dapat itong halaga ng isang katangian ng ID sa parehong dokumento. Ang ID at IDREF ay madalas na ginagamit para sa cross-referencing sa loob ng mga dokumento.

Tandaan na ang isang katangian ng ID ay maaaring may anumang pangalan: hindi ito kailangang tawagin na 'ID', bagaman madalas ito. Sa kabaligtaran - bilang isang bagay na pinakamahusay na kasanayan - hindi mo dapat gamitin ang pangalan na 'ID' ('id') para sa isang katangian na hindi ng uri ng ID, dahil lamang ito ay nakalilito. Kung ang iyong aplikasyon ay may natatanging mga halaga ng pagkakakilanlan na tinatawag ng komunidad na mga ID, at kung saan ay hindi Mga Pangalan ng XML, alinman ang pangalan ng isang bagay na may ibang bagay (eg 'Product-ID') o dokumento na ang halaga ay hindi isang XML ID.

Mayroong W3C Recommendation na nagsasabi na dapat gamitin ng nagdidisenyo ng dokumento attribute name xml:id, at ito'y kayang intindihin ng parser bilang kakaibang ID ng walang pangangailangan sa dokument na gumamit ng DTD o Schema.

CDATA

Teksto lamang.

Token List

Ang katangian ay dapat magkaroon ng isa sa isang pinaghihigpitan na bilang ng mga halaga (tinukoy sa mga panaklong sa deklarasyon, pinaghihiwalay ng mga vertical bar), hal.

 

<!ATTLIST part level (App|Jny|Mst) #REQUIRED>

<!ATTLIST Q.27 resp (Yes|No) "Yes">

 

Sa unang halimbawa ay walang default, at ang isang halaga ay sapilitan. Sa pangalawa, ang 'Oo' ay ang default na halaga (kung ang katangian ay tinanggal, ang parser ay kukuha ng default na halaga mula sa deklarasyon).

ENTITY

Ang attribute value ay dapag isang dineklarang Entity.

NMTOKEN

Ang XML Name Token ay isang ID value (walang space) pero maaari itong magsimula ng kahit hindi ito letra (hal. Numero o bantas).

Special attributes

Karagadagan sa xml:id(binanggit sa itaas), mayroong dalawa na pinapayagan ng XML Specification:

xml:space

nagsasabi ng intensyon sa isang elemennto, na ang isang white-space ay dapat mapreserba sa aplikasyon;

xml:lang

nagtutukoy sa lengguwaheng ginamit ng nilalaman at ng attribute values ng kahit anong elemento.

Tingnan ang seksyon 2.10 at 2.12 ng Spec sa karagadagang detalye.

Sa Schemas isang mas malawak na hanay ng datatypes ay magagamit kaysa sa DTDs, at masalimuot pamantayan ng pagpapatunay ay maaaring naka-attach sa bawat isa.

Ang mga attribute sa isang DTD ay maaaring ideklara bilang #REQUIRED (sapilitan), #IMPLIED (opsyonal), o #FIXED (paunang-natukoy at walang palagian).

Walang nilayon na maging limitasyon sa haba ng isang halaga ng katangian, ngunit dapat mong suriin na ang iyong software sa pagproseso ay maaaring mangasiwa ng hindi pangkaraniwang mga volume ng data kung balak mong gumamit ng napakalaking haba.

BPEL

Ang Business Process Execution Language ay isang espesipikasyong binase sa ng mga hakbang kailangan para sa cooperative business process na nangyayari sa dalawang pumapayag na servers.

Byte Order Mark

Isang two-byte na lagda (0xFEFF, na tinukoy sa Unicode at ISO 10646) na dapat na idinadagdag sa dokumento ng XML kapag ginagamit ang pag-encode ng UCS-2, upang pahintulutan ang mga processor na ibahin ang pagkakaiba sa pagitan ng pag-encode ng UCS-2 at UTF-8.

Colour

Ang XML ay dinisenyo para sa pagtukoy ng impormasyon tungkol sa istraktura at nilalaman ng mga dokumento ng teksto, kaysa sa kanilang hitsura. Bagaman posible na makilala at mag-imbak ng impormasyon tungkol sa mga pagpapakita, ang impormasyong ito ay karaniwang itinatago sa isang CSS o XSL stylesheet. Kung kailangan mong mag-record ng impormasyon tungkol sa pag-format o paglitaw ng isang umiiral na dokumento, may mga tampok sa TEI Schema / DTD para sa paggawa nito.

Data export

Ang isang pangkaraniwang pangangailangan sa flat modelo ng data na ginagamit sa maraming mga sistema ng e-commerce ay upang i-export ang data ng XML sa format ng data ng CSV (Comma-Separated Values) na ginagamit bilang input sa mga spreadsheet. May isang simpleng halimbawa ng isang maikling script upang gawin ito dito. Ang mas kumplikado at sopistikadong gawain ay madaling maisulat gamit ang XSLT o iba pang software sa pagpoproseso ng XML. Ang mga gumagamit ay dapat tandaan na habang ang conversion sa CSV ay sapat para sa simpleng mga format ng data, ito ay isang hindi naaangkop na format para sa normal na mga tekstong teksto ng XML ang gumagamit ng Mixed Content models.

Data import

Karamihan sa mga proyekto ng XML ay nangangailangan ng import ng lahat ng kasalukuyang dokumento sa isang hindi XML na pormat. Ang pag-import ng kasalukuyang HTML na dokumento ay pinaliwanag sa Paano ko pagaganahin ang aking mga HTML files sa XML?, at kung maaari mong iconvert ang iyong dokumento sa XHTML; ito ay marahil ang pinakasimpleng pamamaraan. Iniligtas ng OpenOffice ang mga file na Open Document Format (ODF), na kung saan ay internasyonal na pamantayan para sa mga dokumento ng opisina ng XML. Maaaring i-save ang mga file ng Word bilang WordML (2003) o Opisina Buksan ang XML (2007: alternatibo ng Microsoft sa ODF). Sa parehong mga kaso isang XSLT na pagbabago ay maaaring nakasulat upang lumikha ng angkop na XML na format ng pag-import. Gayunpaman, para sa mga kumplikadong dokumento sa ibang mga format, kinakailangan ang espesyal na software ng conversion. Ang ilang mga XML editor ay nagsisimula na nag-aalok ng inbuilt conversion ng iba pang mga format, at maraming mga standalone na mga sistema ng conversion na magagamit (ang ilan sa mataas na gastos) para sa mga format na kung hindi man ay hindi madaling ma-access ng machine sa pamamagitan ng markup, tulad ng PDF, PostScript, LATEX, Quark XPress, at karamihan sa mga format ng pagmamay-ari ng dokumento. Ang kritikal na punto ay ang halos lahat ng di-XML (non-SGML) na dokumento ay naka-format upang gawing makababasa at maganda ang mga ito, hindi upang gawing makababasa ang mga ito ng makina. Samakatuwid ito ay madalas na ang kaso na ang impormasyon na kinakailangan upang gawin ang mga dokumento na makabuluhan sa XML ay hindi umiiral sa mga format na ito. Ang tanging alternatibo para sa klase ng mga dokumento na ito ay upang ma-rekeyed o ma-scan ang mga ito sa XML sa pamamagitan ng isa sa maraming mga kumpanya sa subcontinent ng India o Pacific Rim.

Mga kasahulan (Disadvantages)

Ang XML markup ay may kaunting kasahulan:

  • Maaari itong maging malaya maliban kung ang mga pangalan ng elemento at katangian ay pinili nang may pag-iingat. Sa mga malalaking dokumento hindi kailangang malaki ang markup overhead, ngunit sa mga maikling mensahe ay maaaring higit na makabuluhang kaysa sa aktwal na data, lalo na kapag ang mga pangalan ng elemento o attribute ay nakabuo ng makina.
  • Hindi pinahihintulutan ang overlapping markup (isang elemento ay hindi maaaring magsimula sa loob ng isang elemento at magtapos sa loob ng isa pa): ang markup ng sangkap ay dapat na nest hierarchically.
  • • Karamihan sa mga application ay nangangailangan ng dokumento na mai-load sa memorya sa kabuuan nito bago ito ma-parse at naproseso. Ito ay maaaring maging isang problema para sa tunay na mga malalaking dokumento (mas malaki kaysa sa naa-address na memory ng isang computer system). Mahahalaga, ang XML ay ang marahil maling kasangkapan na gagamitin para sa mga file na ganitong sukat, ngunit may mga streaming system na kung saan ay magpapahintulot sa kanila na ma-proseso.
  • Ang ibang software ay totoong napakakaraniwan lamang.
Editing

Gumamit ng XML editor kung nais mag-edit(bukas) ng XML na dokumento. Posible magbukas ng dokument gamit kahit anong standard plaintext editor o kahit wordprocessor, mag-ingat lang dahil may iba dito ang di naiintindihan ang XML at baka baguhin ang pormat nito.

Entities

Ang entity ay isang yunit ng pag-iimbak sa XML. Ito'y pwede maging kasing liit ng karakter o kasing laki ng isang buong dokumento. Mayroong apat na uri ng entity na declarable:

General entities

na maaaring maging tulad ng string-replacement na macro:

<!ENTITY IBM "International Business Machines">

 

Maaaring gamitin ang mga ito para sa pagpasok ng data ng shorthand o upang garantiya ang unipormeng pagbabaybay tulad ng & IBM; at makakakuha sila ng papalitan kapag ang parse ay ma-parse.

Maaari din silang kumatawan sa panlabas na mga file:

<!ENTITY chap5 SYSTEM "chapter5.xml">

 

na maaaring magamit bilang isang mekanismo ng pagsasama ng file sa punto kung saan mo isingit ang & chap5 ;. Ang mga panlabas na pangkalahatang entidad ng file ay hindi dapat maglaman ng XML Declaration o anumang Pahayag ng Uri ng Dokumento.

Document entities

Ang mga ito ay tulad ng mga panlabas na pangkalahatang mga entidad ng file maliban na tinukoy nila ang uri ng data na naglalaman ng mga ito, gamit ang isang ipinahayag na Notasyon, upang ang parser at application ay maaaring magpasya kung paano pangasiwaan ang mga ito (halimbawa isama ang mga ito o ibibigay ang mga ito sa isa pang programa na tiyak sa kanilang uri ng daluyan):

 

<!ELEMENT link (#PCDATA)> <!ATTLIST link to ENTITY #REQUIRED>

...

<!NOTATION PDF PUBLIC

"-//Adobe//NOTATION Portable Document Format//EN//PDF"

"http://partners.adobe.com/public/developer/pdf/index_reference.html">

<!ENTITY pricelist SYSTEM "/sales/pricelist.pdf" NDATA PDF>

...

<para>Please refer to our <link to="pricelist">current price list</link>.</para>

 

Ito'y nagbibigay ng napakatibay na paraan ng pagtukoy ng external entity ng isang beses at pumapayag na ito'y mareference ng maraming beses (kapag ang external filename ay nagbago, kailangan mo lang i-update ang entity declaration).

Character entities

Tulad ng &aacute; para marepresenta ang karakter para sa mga user na walang keyboard features tulad ng 'á';

Parameter Entities

Ay parang mga General Entities pero pwede lamang ireperensa sa loob ng DTD. Ginagamit ang mga ito upang makontrol ang mga content models, pagsama o pag-alis ng deklarasyon, at ang pagbabago ng modular na construct:

 

<!ENTITY % local.qandaset.mix "|bibliodiv">

 

(gamit ang halimbawa na ginamit sa FAQ na to) kung saan ang halo ng element types sa content model para sa qandaset ay tinukoy ng mga entity qandaset.mix (tinukoy sa DocBook) at ng local.qandaset.mix (tinukoy ng user[ako]) upang ang DTD ay maaaring maayos ng di kailangan i-edit.

Ang mga General entity names, kasama ang XML document entities at character entities, ay laging nagsisimula sa isang ampersand (&) at magtapos na may isang semicolon (;), at maaaring magamit kahit saan sa iyong dokumento. Ang mga entity ng parameter ay maaari lamang magamit sa isang DTD: nagsisimula sila sa isang porsyentong pag-sign (%) at nagtatapos sa isang tuldok-kuwit.

Enumeration

Upang mabilang ang dami ng pangyayari ng node sa isang XML na dokumento, maaaring gumamit ng count function sa XSL[T], hal.

 

<xsl:value-of select="count(//chapter)"/>

 

Upang mag-apply ng counter bilang repetitive element type, gamitin ang xsl:number na element, hal.

 

<xsl:number select="appendix" level="any" format="A"/>

 

Para sa mga XSLT na talakayin, tumingin sa How do I control the formatting of XML?.

Environment variables

Ang XML ay isang markup language, hindi isang programming language, kaya wala itong konsepto ng mga variable ng kapaligiran. Gayunpaman, kung gumagamit ka ng isang DTD, at ma-access ang iyong mga file na XML sa ilalim ng control ng programa (hal. Sa isang script sa halip na sa pamamagitan ng kamay) posible na baguhin ang halaga ng ipinahayag na mga katangian o entidad (eg sa isang stream-editor tulad ng sed) bago ang file ay binuksan, at sa gayon ay pumasa sa mga halaga mula sa panlabas na kapaligiran sa dokumento. Ang isang katulad na diskarte ay magiging posible sa Schemas.

Escaping

Ang ibig sabihin ng escaping ay pansamantalang lumipat sa paraan ng isang programa na gumagana upang gumawa ng isang bagay na naiiba sa data. Sa SGML, ito ay maginoo upang magamit lamang ang mga character na ASCII sa iyong mga dokumento dahil ang mga keyboard, screen, at mga font para sa iba pang mga character ay madalas na hindi magagamit. Upang makatakas mula sa mga limitasyon ng format na ito para sa mga character na hindi ASCII tulad ng mga accent at mga simbolo ang isang hanay ng mga pangalan ng nimonik ay magagamit, prefix ng isang ampersand (&) upang i-on ang escapement sa, at sinundan ng isang semicolon (;) upang buksan ito off, kaya ang isang ay ibinigay bilang & aacute;

Ang XML ay pinapayagan kang gumamit ng Unicode, kaya ang mga karakter o simbolo sa kahit anong lengguwahe ay pwede ilagay. Kung gumagamit ka ng pag-encode ng UTF-8 sa iyong mga dokumento, hindi na kailangang mag-escaping maliban sa dalawang simbolo ng markup (<at &). Gayunpaman, hindi lahat ay may Unicode editor, at kumpleto na ang mga Unicode font ay napakalaking, kaya ito ay maginoo sa mga alpabetikong wika upang pumili ng isang encoding na nagbibigay-daan sa iyo upang gamitin ang karamihan ng mga character na kailangan mo, at gamitin ang escaping para sa paminsan-minsang iba pang mga character.

Floating-point

Hindi mo maaaring ipahayag ang nilalaman ng data ng karakter o mga halaga ng katangian bilang lumulutang-point (o maraming iba pang mga uri ng data) gamit ang DTD. Upang gawin iyon kailangan mong gumamit ng isang Schema.

GTT

ang Gnome Time Tracker ay isang bahagi ng Gnome interface na ginagamit nang husto sa mga sistema ng Linux. Ang bahagi ng panloob na data nito ay naka-configure sa XML.

Games

Di ako aware sa kahit anong larong pang kompyuter ang gumagamit ng XML sa ngayon, pero ginagamit ang XML sa ibang pangloob ng kontrol at configuration files na ginagamit sa mga laro.

Idempotency

Isa termino na ginamit sa the HTTP specification upang matukoy ang side-effect-free o walang side-effect na likas ng paulit-ulit na request sa isang resource.

Javascript

ECMAscript (upang mabigyan ito ng tunay na pangalan) ay walang kinalaman sa wikang Java. Ito ay dinisenyo upang tumakbo sa loob ng mga window ng browser, mag-navigate o kumilos sa markup ng isang pahina upang lumikha ng dynamic na nilalaman, patunayan ang mga form, o magbigay ng mga bagay sa mga paraan na hindi posible sa static na HTML. Dinisenyo din ito upang hindi ito makapagsulat sa mga lokal na filesystem ng user, para sa mga halatang kadahilanang pang-seguridad, kaya hindi madali itong magamit upang lumikha ng mga file ng XML sa isang lugar, bagaman mayroong ilang mga back-door sa software ng Microsoft na nagpapahintulot sa mga nabago na pahina na mai-save sa disk.

Line breaks

Maaaring malikha ang mga XML file gamit ang alinman sa tatlong karaniwang mga representasyon ng newline: CR (Mac), LF (Unix), o CR / LF (Windows). Ang paggamit ng anumang bagay ay maaaring humantong sa hindi natukoy na pag-uugali (kaya lumang mga editor ng DOS na gumagamit ng LF / CR ay maaaring lumikha ng hindi magamit na mga file). Ang mga XML processor ay normalize ang lahat ng mga line-ends sa LF.

Ang pag-break ng linya sa iyong output ay pinamamahalaan ng iyong engine ng pag-render (hal. Isang browser, isang uri, atbp.). Maaaring tukuyin ng iyong DTD o Schema ang mga espesyal na elemento o entidad na gagamitin sa mga bihirang okasyon kapag kinakailangan ang sapilitang linebreak, ngunit ito ay hindi karaniwang isang bagay na ginawa sa XML (pagbubukod: pagbabagong-tatag ng mga dokumento sa kasaysayan gamit ang TEI).

Loops

Upang maproseso ang ilang XML nang repetitively, kailangan mong gumamit ng isang wika sa pagpoproseso na nagpapahintulot sa looping o cyclical handling ng isang tinukoy na hanay ng mga node. Halimbawa sa XSLT, upang i-output ang lahat ng mga pamagat ng kabanata upang gumawa ng isang talaan ng mga nilalaman (ibig sabihin, sa labas ng natural na posisyon ng dokumento), maaari mong sabihin:

 

<xsl:for-each select="//chapter">

<li>

<xsl:value-of select="title"/>

</li>

</xsl:for-each>

 

Multimedia

Ang Synchronized Multimedia Integration Language (SMIL) ay nagbibigay ng XML na bokabularyo para sa simple pag-autor ng interaktibong odyobiswal na presentasyon. Ang SMIL ay ginagamit para sa 'rich media'/multimedia na presentasyon upang mapagsama ang odyo at bidyo na may imahe, teksto o ano pa mang media type.

Patents, Copyright, and Intellectual Property

Hindi ako abogado at wala itong kinalaman sa ligalidad. Kung nag-aalala, pumunta ka muna sa doctor ng pag-iisip. ?

Dahil ang Estados Unidos (at, lalong, sa ibang lugar) ay huminto sa pag-check ng mga application ng patent sa katinuan, halos kahit sino ay maaaring patent ng anumang bagay sa mga bansang ito, hindi alintana kung mayroon man o wala na ito. Kung ikaw ay sapat na intellectually bangkarote, maaari mong simulan ang pagpapadala ng mga invoice sa mga kumpanya at kahit na mga indibidwal na hinihingi ng pagbabayad ng mga bayarin sa lisensya para sa patuloy na paggamit.

Ang XML ay inilunsad noong 1995 at unang inilathala noong 1996, kaya sinumang nag-aangkin na nag-imbento sila ng punto-bracket na tumutukoy sa sarili na hierarchically-nested na naka-iskedyul na markup pagkatapos na marahil ay ilang mga elemento na maikli ng isang Schema. Ang XML ay batay sa SGML, na isang pang-internasyonal na pamantayan na binubuo ng ISO 8879: 1986, at ito ay sinundan ng maraming iba pang mga malapit na kaugnay na mga markup system, kaya sinumang nag-aangkin na imbento nila ito pagkatapos na ang petsa ay pantay na lapad ng markup.

Maraming kasunod na mga teknolohiya ng derivatibo na may pagkakautang sa SGML at XML na pinagtatrabahuhan ay lubos na posibleng mga may-bisang mga patente, sa parehong paraan na ang apoy ay hindi orihinal na patented ngunit ang mga posporo at mga lighters ay oo.

Ang mga patento ay orihinal na dinisenyo para sa bagong pisikal ng imbensyon. Ang mga metodolohiya at algoritmo ay ang nagpalawak sa konsepto ng ideya, na sinusupetyahan parin nga mga tao. Ang patenting ng natural na phenomena tulad ng mga genes (na kung saan ay mga pre-umiiral na mga bahagi ng Kalikasan tulad ng mga pulitiko at pond scum), ay walang kabuluhan at walang kinalaman sa intelektwal, kahit na legal na maipapatupad sa USA at sa ibang lugar.

Awtomatiko ang awtomatiko ng awtomatiko sa anumang nilikha mo, ngunit sa ilang mga bansa (kapansin-pansin sa USA at France) hindi mo maipapatupad ito maliban kung irehistro mo ang iyong interes. Ang Copyright ay nagpatuloy sa ilang taon pagkatapos ng iyong kamatayan (EU: 75, iba't iba sa ibang lugar) upang mapahintulutan ang iyong mga kaapu-apuhan sa pagbebenta ng iyong trabaho.

Ang copyright ay isang pisikal na anyo ng intelektuwal na ekspresyon tulad ng libro, dyaryo, gawa ng sining, web site o mga programa para sa kompyuter. Ito ay umiiral upang maiwasan ang iba na pagnanakaw ng iyong trabaho at pagbebenta nito. Maaari kang mag-quote ng mga snippet ng trabaho ng iba pang mga tao nang walang pahintulot, tulad ng isang linya ng isang tula, o isang bar ng musika, o isang pangungusap mula sa isang nobela, ibinigay mo sabihin kung saan ito ay at kung saan upang mahanap ito: kung hindi, kailangan mong humingi ng pahintulot muna. Ang Copyright ay nagbibigay ng higit sa sapat na proteksyon para sa mga programa sa computer, na ginagawang paggamit ng mga patente para sa kanila na hindi kailangang overkill.

Kinikilala ka ng Intelektwal na Ari-arian bilang may-ari ng mga kaisipan at ideya na maaaring makita ang kanilang pisikal na pagpapakita sa mga patentable na imbensyon o mga copyright na publikasyon. Kahit na nagbebenta ka ng iyong mga patent, at makalipas ang ilang pag-expire ng iyong mga karapatang-kopya, maaari mo pa ring makita bilang taong nagdamdam ng ideya, at ang ilang mga bansa (hal. UK) ay nagbibigay-daan sa iyo upang pormal na igiit ang iyong karapatang makilala , anuman ang mangyayari sa aklat o sa gizzmo.

Palagi mo dapat kilalanin ang intelektuwal na pag-aari ng iba, mas lalo na kung gagamitin mo ito upang sa iyong sariling mga layunin. Ang pagkunwari na ang ideya ng iba ay saiyo ay maaaring mas malala pa pag-patent ng apoy, tubig, o XML

Pipelining

Isang teknik para sa pagbabawas ng kumplikadong sekwensyal at parallel procesing na pangangailangan upang maset ang mga kumponent na maaaring makumpleto gamit ang kontrol ng programa.

Ang term ay kinuha mula sa pasilidad ng Unix para sa pag-redirect ng output ng isang command sa input ng isa pa (na tinatawag na isang 'pipe'), sa epekto paglikha ng isang kadena o tubo sa pamamagitan ng kung saan ang data ay pumasa sa paraan mula sa pinagmulan upang magresulta.

Ang W3C ay may Note pending na pinasa sa isang XML Pipeline Definition Language na maaaring gamitin upang magtukoy sa madali at malayang paraan.

RSS

Ang Really Simple Syndication na pormat ay dinisenyo para sa mga news site na makapagproseso ng mga update gamit ang machine, ito'y nag-evolve bilang semi-standard na pormat para sa mga blogs at ibang pabago-bagong sites upang mabalitaan ang mundo sa mga pagbabago. Sa kasamaang palad, ito ay hindi kailanman wastong tinukoy, at mayroong maraming di-magkatugma at di-dokumentado na mga bersyon. Ito ay napapalitan ng isang mas mahusay na wikang tinatawag na Atom, ngunit kamakailan lamang inihayag ng Microsoft ang kanilang suporta para sa RSS, kaya mukhang maaaring natigil kami sa isang limon para sa mga darating na taon.

Ang mga 'Newsreaders' (RSS readers) ay magagamit para sa lahat ng mga platform, parehong standalone at bilang mga plugin ng browser. Huwag malito ang mga ito sa mga programa ng parehong paglalarawan na idinisenyo upang magbigay ng access sa serbisyo ng Usenet News, na kung saan ay isang iba't ibang mga bagay na ganap (at kailangan mong basahin sa comp.text.xml).

Rendering

Paggamit sa XSLT o XSL:FO na pagbabago (o iba pang kaparehong conversion na sistema), impormasyong marked up sa XML ay pwede marender ng halos sa kahit anong target HTML, PDF, audio, Braille, at halos lahat ng plain-text na pormat (hal. LATEX). Kung anong istura (o tunog) ay resulta ng paggamit ng stylesheet o ibang lohikong pagbabago na binuksan ng markup.

SML

Ang Spacecraft Markup Language ay isang aplikasyon ng XML.

Ang Standard ML na isang programming language ay hindi.

Ibig-sabihin mo ba ay SGML?

SOAP

Isang W3C standard para sa depinisyon ng XML-based na impormasyon na pwede magamit sa pagpapalit-palit ng buo at typed na impormasyon sa pagitan ng dalawang tao sa isang decentralised, at kalat ng environment. Mas kilala bilang Web services sa pagpasa ng mensahe.

Ito'y orihinal na Simple Object Access Protocol, ang acronym ay wala na ibig sabihin, or binabanggit bilang Service-Oriented Access Protocol. Ang Guru99 mayroon tutorial on SOAP.

Searching

Maaari kang maghanap ng mga indibidwal na mga file na XML sa isang sunud-sunod, stand-alone, unindexed command-line na batayan gamit ang mga programa tulad ng lxgrep o lxprintf, parte ng LTXML2 toolkit. May mga editor na may pasilidad rin na pangsearch.

XSLT ay nagbibigay-daan sa isang limitadong pasilidad sa paghahanap lamang sa pamamagitan ng paggamit ng mga function tulad ng naglalaman, nagsisimula-may, andends-may. Nagdagdag ang XSLT2 ng Regular Expression. XQuery ay isang ganap na laseng paghahanap ng wika para sa XML.

Ang processor ng Saxon XSLT ay may isang pagpapatupad ng XQuery (tingnan rin din sa XQL FAQ), na maaaring tumanggap ng mga query alinman mula sa command line o mula sa isang file. Ang Saxon ay maaari ring gumamit ng isang control file upang tukuyin ang mga grupo ng mga XML file na hahanapin nang sama-sama.

Para sa index na paghahanap (para sa bilis) kailangan mo ng tool sa paghahanap ng XQuery na nagpapatupad ng isang index ng engine na bumabasa at nauunawaan ang markup. Ang mga ito ay kadalasang ipinatupad bilang bahagi ng isang 'katutubong' XML database system tulad ng eXist (at marami pang iba), na nagpapatakbo ng alinman sa stand-alone o kahanay sa isang XML server tulad ng Cocoon.

Ang mga tradisyonal na relational database (MySQL, Oracle, atbp) ay may posibilidad na mag-imbak ng XML bilang mga undistinguished strings o BLOBs, gamit ang bolt-on na XML backend upang mahawakan ang markup sa import at export. Ang mga database na 'Katutubong' XML ay may XML na paghawak ng built-in, at maaaring i-configure para sa granularity, upang mag-imbak sa isang partikular na antas ng elemento, na ginagawang mas epektibo ang paghahanap ng markup-sensitive.

Serving XML

Tingnan sa Do I have to change any of my server software to work with XML?

Sorting

Upang ayusin ang isang paulit-ulit na hanay ng mga elemento ng XML sa XSL [T], gamitin ang xsl:sort , hal

<xsl:for-each select="//acronym">

<xsl:sort select="@abbrev"/>

<xsl:value-of select="@abbrev"/>

<xsl:text>: </xsl:text>

<xsl:apply-templates/>

</xsl:for-each>

 

Special characters

Mayroong dalawang espesyal na markup character ang XML sa mga normal na dokumento:

  • Ang bukas na bracket ng anggulo o mas mababa kaysa sa pag-sign (<) na nagsisimula sa isang start-tag o end-tag tulad ng <ulat> o </ table>;
  • Ang ampersand character (&) na nagsisimula sa reference ng entidad tulad ng & aacute; para sa o & # x00A7; para sa §.Contrary to popular opinion, the closing angle bracket or greater-than (>) and the semicolon (;) are not special characters in normal text: they only acquire their temporary special meaning once one of the two markup characters has been encountered.
Sa DTDs, ang porsyentong sign (%) ay may espesyal na kahulugan sa mga deklarasyon ng entidad: tinutukoy nito ang entidad bilang isang entidad ng parameter, ibig sabihin ay maaari lamang itong gamitin sa loob ng DTD, hindi sa isang teksto ng dokumento, at para lamang sa pagpapalit ng data (isang uri ng simpleng macro).

Ang exclamation mark (!) Ay nakakakuha ng isang espesyal na kahulugan kaagad pagkatapos ng isang mas mababa kaysa sa sign: kapag sinusundan ng isa sa mga deklarasyon keyword sa isang DTD ito signal ang simula ng Pahayag; kapag sinusundan ng dalawang dashes ito ay nagpapahiwatig ng simula ng isang komento (natapos ng isa pang dalawang gitling at mas malaki kaysa sa pag-sign.

TMX

TMX ay isang pamantayang paraan upang ilarawan ang data ng memory ng pagsasalin na ipinagpapalit sa mga tool at / o mga tagasalin ng pagsasalin para sa pagsasalin ng wika ng wika (bahagi ng OSCAR na proyekto mula sa LISA).

Tables

Maaari mong tukuyin ang mga talahanayan anumang paraan na nais mo sa XML (tingnan sa Does XML let me make up my own tags?) ngunit may ilang mga umiiral na mga modelo ng mesa na naging malawakang ginagamit (at suportado ng software) na kakailanganin ng isang napakahusay na dahilan upang makalikha ng isang bagong bagay. Mayroong higit pang mga detalye (Flynn, 1998) §2.3.7.

HTML

Ang mga talahanayan ng HTML ay imbento ng Mosaic (ngayon Netscape) at unang lumitaw sa HTML2 DTD. Sa lahat ng mga bersyon ng HTML at XHTML tinutukoy nila ang isang napaka-simpleng ngunit praktikal na modelo, na may napakakaunting mga pagpipino, na angkop para sa paggamit ng web at para sa hindi pa madaling pag-print. Ang kanilang pangunahing bentahe ay sa isang browser ang taas at lapad ng cell (at sa gayon ang lapad ng haligi) ay palawakin o kontrata ay awtomatikong upang mapaunlakan ang halaga ng teksto na nakapaloob sa mga ito. Karamihan sa iba pang mga modelo ng talahanayan ay ipinapalagay ang mga lapad ng mga haligi at ang taas ng mga cell ay tinutukoy nang maaga (na maaari mong gawin sa HTML ngunit ito ay bihirang ginagamit).

CALS

Ang Computer-Aided Logistics and Support (at maraming iba pang mga acronym sa mga taon) ay bahagi ng proyekto ng US militar upang matiyak ang isang pare-parehong markup para sa lahat ng dokumentasyon, orihinal na sa SGML, ngayon sa XML. Bilang bahagi ng aktibidad na ito, ang modelo ng talahanayan ng CAL ay naging pinakalawak na ginagamit sa teknikal na dokumentasyon, lalo na para sa Interactive Electronic Technical Manuals (IETMs), na may malawak na suporta sa lahat ng mga pangunahing editor, at ito ay ang default na talahanayan modelo sa DocBook DTD at Schema. Ang mga kahulugan ng CAL ay napakalakas ngunit lubos na kumplikado, at maaaring hawakan ang halos lahat ng mga kinakailangan para sa pagsasama, paghahari, at pagpapantay.

SASOUT

Ang larangang ito ay malawak na ginagamit sa mga agham panlipunan at sa ibang lugar para sa pagtukoy ng mga talahanayan batay sa mga semantika ng data, sa halip na ang hitsura. Sa isang pagkakataon sila ay isang alternatibo sa DocBook (pinagana sa pamamagitan ng isang simpleng paglipat ng entity parameter).

TEI

Ang modelo ng TEI ay dinisenyo upang pahintulutan ang encoder na kumatawan sa mga umiiral na mga talahanayan na na-transcribe mula sa makasaysayang, pampanitikan, o materyal na archive, sa halip na sa pagbuo ng bagong data. Ang markup ay nasa parehong antas ng pagiging simple bilang modelo ng HTML, ngunit ito ay dinisenyo upang pahintulutan ang pagsasama ng mas masigpit na markup at metadata na kinakailangan sa mga teksto ng pananaliksik.

LATEX

Ang modelo ng LATEX ay hindi direktang pag-aalala sa XML user maliban na lamang kung ang LATEX ay isang karaniwang target para sa mga pagbabago mula sa XML gamit ang XSLT upang lumikha ng mga PDF. Tulad ng mga CALS, ang mga talahanayan ng LATEX ay maaaring hawakan ang halos anumang pag-format, ngunit ang mga default na alignment ay ipinapalagay na ang bawat hanay ng format ay tinukoy muna, at ang bawat cell ay maghawak ng isang linya ng data: isang karagdagang pakete (array) ang kailangan upang mahawakan ang mga cell ng multi-line sa ang paraan ng iba pang mga modelo.

Sa XML, hindi kinakailangang gumamit ng mga talahanayan upang markahan ang mga listahan tulad ng madalas na ginagawa sa mga wordprocessors, dahil ang mga pasilidad sa pagpoproseso ng mga wika tulad ng XSLT ay nagbibigay-daan sa iyo upang baguhin ang dokumento upang gumamit ng mga di-tabular na pamamaraan (tulad ng mga div ng HTML). Dapat na limitado ang table markup sa 'totoong' mga talahanayan (data na nakaayos sa mga hilera at mga haligi) at hindi inabuso dahil lamang sa gusto mo ng isang bagay na ipinapakita sa isang antas na may iba pang bagay: mas mahusay na pumili ng markup na idinisenyo upang gawin ang trabaho ng maayos sa halip kaysa sa papangitin ang mga umiiral na mga pasilidad.

Ang mga gumagamit ng wordprocessor ay karaniwang walang kamalayan na maraming mga istruktura na kasalukuyang ginagamit nila ang mga wordprocessor table para sa mga factually segmented na listahan, kung saan ang mga wordprocessors ay hindi kaya ng paghawak ng tama. Ang isa sa mga pangunahing dahilan para sa paggawa ng maayos ay ang data ay maaaring pagkatapos ay reprocessed upang magkaroon ng kahulugan kapag basahin sa natural na order.

Text document formatting functions

Dahil ang XML ay isang metalanguage upang ipaalam sa iyo na tukuyin at pangalanan ang iyong sariling mga istraktura ng impormasyon, wala itong built-in na kaalaman tungkol sa anumang bagay upang magsimula sa. Samakatuwid, walang likas na pag-unawa sa anumang mga partikular na dokumento tulad ng mga bulleted na listahan, mga seksyon, mga footnote, o alinman sa mga pangkaraniwang tampok sa online tulad ng mga drop-down na menu, mga form (input, check box, radio button, at mga lugar ng teksto), mga script, o iba pang mga kampanilya at mga whistles - ang mga ito ay mga bagay na magagamit mo upang gamitin ang XML upang tukuyin, sa isang DTD o Schema para sa iyong partikular na aplikasyon. Salungat sa impresyong ibinigay ng ilang mga tagagawa ang mga bagay na ito ay hindi itinatayo sa XML mismo. Unang pinili o idisenyo ang isang uri ng dokumento (Schema o DTD) upang kumatawan nang tama ang iyong impormasyon, pagkatapos ay maaari kang lumikha ng mga epekto tulad ng sa itaas sa pamamagitan ng paggamit ng estilo ng CSS, o pagsusulat ng XSL [T] na pagbabago ng iyong XML sa HTML, Word, LATEX, PDF, o anumang ibang format ay may kakayahang magbigay ng institusyon sa kanila.

Mayroong karagdagang mga panukala at rekomendasyon ng katutubong XML para sa W3C para sa paghawak ng XML Forms, Linking XML, XML Security, at maraming iba pang mga tampok, ngunit ang mga ito ay mekanikal na pagpapagana ng arkitektura, hindi mga pagpapalit para sa HTML.

UML

Ang Unified Modeling Language ay walang kinalaman sa XML, pero may mga puntong nagkakatagpo ito, at some software is available upang mai-express ang ibang UML na istraktura sa layuning ng interprocess na pagmemensahe.

URI parsing errors

Tingnan sa Semicolon.

Variables

XML doesn't have variables or parameters, nor does it have fields or records. These are all terms from programming and database technology, and do not have exact equivalents in XML.

XML identifies your information with elements and attributes.

WAP

Ang Wireless Application Protocol (WAP) ay hawak na ng Open Mobile Alliance.

Well-formed

Tingnan sa Well-formed XML.

White-space

Tingnan sa How does XML handle white-space in my documents?.

XLL

Ang XML Linking Language ay naglalaman ng XLink specification at mga XPointer specification. Para sa detalye, tingnan sa XML Linking Working Group sa W3C.

XLS

Microsoft na may proprietary spreadsheet na format ng file na isinulat ng kanilang spreadsheet na programa ng Excel. Ang mga file na XLS ay hindi mga file na XML, ngunit ang mga modernong bersyon ng Excel ay nag-i-save ang kanilang data bilang .xlst na mga file sa Office's Open XML format ng Microsoft (OOXML).

Wag malito sa XLS at XSL (tingnan sa How do I control the formatting of XML?).

XML

Ito na nga ang XML FAQ. Simulan s Basics.

XML and security, privacy, and identity standards

Eve

XML Protocol

Mayroong Working Group para sa Mga Serbisyo sa Web sa W3C, at bahagi ng kanilang pagpapadala ay upang gumana sa isang XML Protocol. Tingnan ang http://www.w3.org/2000/xp/Group/ para sa detalye.

XMLHTTP

Isang feature na tinalaga sa MSXML at sa iba pa upang mapayagan ang pagkuha ng web page, binary data o scripted na mga sagot sa ilalim ng kontrol ng programa (tulad sa curl, wget o dog sa isang shell script). Halinhinang ginagamit sa AJaX na aplikasyon upang pangunang kunin ang data, di nagaaksaya ng oras sa pagpapalabas ng aplikasyon ay tumatakbo panglokal.

XUL

Ang XML User Interface Language, ay dinisenyo para sa pagtukoy ng user interface ng Mozilla browser.

asp.net

Ang ASP (Active Server Pages) ay isang Microsoft language para sa pagserve ng dynamic web pages, pareho sa konsepto ng JSP, PHP, at iba pa. Sa kanyang sarili, ang ASP ay walang kinalaman sa XML, pero tulad ng kahit anong server-side na sistema, pwede itong at ng ibang uri ng file.

.NET itself ay isa platapormang pangaplikasyon at ang metodolohiya para sa web services development sa server ng Microsoft. Karamihan sa mga web service ay kilala sa XML bilang 'common carrier' ng pangkaloobang pagmemensahe sa negosyo, kaya ang .NET ay isang mahalagang parte ng XML.

Isinulat ni Marc Hadley:

Napakaraming alternatibo sa ASP, karamihan ay kapareho ng page-base na approach. Ang base sa Java na alternatibo tulad ng Java Server Pages (JSP), Java Server Faces (JSF) at Cocoon (na mayroon eXtensible Server Pages - XSP). Sikat na mga scripting language na alternatibo tulad ng Zope (Python) at Rails (Ruby) [na lahat ay may malawakang suporta sa XML. - Ed.]

Q 5.4: Nawalang Software para sa XML

Ang iba sa mga magagandang software ng XML ay nawala.

Napakaraming mahahalaga at produktibong programa ang bigla na lang naglaho. Minsan ang kumpanya ay bigla na lang nalugi at nawala; minsan ito'y pribado o bukas sa lahat na pangangahas kaya kailangan iabandona ng gumawa; minsan naman (pinakamalala sa lahat) ang kumpanya ay nabili na ng isa pang kumpanya na wala talagang alam sa XML, at biglang nabili uli ng isa pang kumpanya na talagang walang alam dito, kaya ang mga produkto ay nagiging abandonware.

Ito'y listahan ng mga alam at subok na namin, pero sa ibang pagkakataon ay kailangan parin ng kanilang mga installation disks, pero maaaring paring magamit kahit ito'y luma na.

Near & Far (Microstar)

Isang grapikal na SGML DTD-design na programa para sa Windows 95, na halos kakabot lang era ng XML (pwedeng magluwas sa XML Declaration Syntax, pero di ang mag-angkat). Nakilala dahil madaling gamitin at sa magandang dayagramo ng istraktura ng dokumento (ginagamit parin ng iilang apisyonado para sa dokumentasyon).

DynaText/DynaTag/DynaWeb (Electronic Book Technologies)

Isang suite ng Windows 95/NT software na naglalaman ng SGML database at web server sa pagserve ng HTML nakonvert mula sa dokumento ng Word.

Ang pangunahing sangkap ay DynaTag, na nagpapahintulot sa iyo na mag-import ng isang dokumento ng Word, at tukuyin ang mga pattern sa (non-XML) markup na nakalagay sa mga elemento sa ad-hoc output SGML document. Binibigyang-daan ka ng mga mappiling mappiling gumagamit na mag-encapsulate ng mga item sa listahan sa isang tunay na listahan, at sa pangkalahatan ay labanan ang iyong paraan sa pamamagitan ng gulo ng mga .doc na Word file upang makabuo ng na-tag na output. Ito ay maaaring pagkatapos ay maiproseso sa isang conformance sa isang kilalang DTD. Na may sapat na mga halimbawa ng mga katulad na binuo na mga file ng Word, maaari itong maging maluwag sa isang buong koleksyon ng mga ito para sa maramihang conversion.

Microsoft SGML Author for Word

Kahit ganito ang pangalan, isa itong converter, hindi editor. Gumamit ito ng mappings para Word style papuntang SGML markup at kayang gawin ang circular lossless na kumbersyon. Para sa mga autor na komunidad na di kaya o ayaw matuto mag-autor o mag-edit sa SGML, nagbibigay daan ito sa pag-autor sa Word at pag-edit sa SGML, at ibinabalik ang dokumento sa Word para ma-edit ng mga autor. Isang check-box lamang para sa isang kontrata, pero di ito kailanman sinuportahan ng Microsoft, at kahit ang mga helpdesk ay di naniniwala na totoo ito.

Panorama (SoftQuad)

Isang plugin para sa Netscape na pumapayag sa mga SGML na download na may referenced na stylesheet (na gumagana naman kapag nasanay ka sa kakaibang pagrereference nito). Itinalaga rin nito ang HyTime bidirectional links, at maaari mo ring ipublish ang iyong linkset.

Magagamiat rin bilang Panorama Publisher, isang mas malaking bersyon na bilang standalone na porma para sa malakihang paglimbag ng dokumento. Ang editing pane ng stylesheet nito ay nanatili paring pinakamagandang halimbawa ng interactive style manipulation.

Kung may iba pang impormasyon tungkol sa mga mahahalagang produkto na naglaho, paki e-mail ang editor.

SourceNa-update noong - 8 Mayo, 2018