Skilgreining á gerð skjals

frá Wikipedia, ókeypis alfræðiorðabókinni
Fara í siglingar Fara í leit

Skilgreining á gerð skjals ( enska DTD Document Type Definition) í stuttu máli, er sett af reglum, er notað til að lýsa yfir skjölum af tiltekinni gerð. Skjalagerð er flokkur svipaðra skjala, svo sem símaskrár eða birgðaskrár. Skilgreining á gerð skjals samanstendur af frumefnum, eiginleikum frumefna, einingum og merkingum. Í áþreifanlegu tilliti þýðir þetta að röðin, hreiður frumefnanna og gerð innihalds eiginleika er tilgreind í DTD, þ.e. uppbyggingu skjalsins.

DTD tilgreinir setningafræði forrits SGML eða XML, svo sem tungumál HTML eðaXHTML sem dregið er af þeim. Þessi setningafræði er venjulega geymd á minna almennu formi en SGML eða XML setningafræðin.

virka

Setningafræði og merkingarfræði DTD eru hluti af SGML og XML forskriftinni. DTD er athugað þegar skjalið er lesið. Í SGML verður að úthluta DTD í hvert skjal. Þessi kortlagning er valfrjáls í XML. Skjal byggt á DTD ( <?xml version="1.0"?><!DOCTYPE ...> ) tryggir rétt DTD sem notað er, <?xml version="1.0"?><!DOCTYPE ...> fyrirhugaða setningafræði og merkingarfræði. Hér er lögð áhersla á að gögnin séu rétt. Skjal án utanaðkomandi tilvísunar DTD eða innifalið DTD er aðeins athugað um vel mótun þegar það er lesið. Áherslan er hér á skjótan læsileika. Innihaldið getur verið frábrugðið viðeigandi setningafræði og merkingarfræði. Í báðum tilfellum er hægt að athuga gæði gagnanna afturvirkt með því að nota viðbótarferli.

Athugið : Í eftirfarandi eru dæmin gefin í XML setningafræði.

Yfirlýsingu um gerð skjals (DOCTYPE)

Gerðayfirlýsing skjals kemur á tengingu milli skjals og DTD. Gerð yfirlýsingu skjals er gefin í upphafi skjals á undan rótþætti. Hægt er að vísa DTD sem ytri skrá (ytri DTD) eða samþætta beint í skjalið (innri DTD).

Setningafræði fyrir yfirlýsingu gerðar skjals í SGML og XML er:

 <! DOCTYPE rótarefni SYSTEM "file.dtd">
<! DOCTYPE rótarefni SYSTEM "file.dtd" […]>
<! DOCTYPE rótarefni ALMENNT „Public Identifier“ „file.dtd“>
<! DOCTYPE rótarþáttur OPINBER "Public Identifier" "file.dtd" [...]>
<! DOCTYPE rótarþáttur […]>

Í SGML eru eftirfarandi afbrigði einnig leyfð án kerfisauðkennis:

 <! DOCTYPE rótarþáttur PUBLIC "Public Identifier">
<! DOCTYPE rótarefni ALMENNT „Opinber auðkenni“ […]>

Þó að það sé ekki lengur DTD í HTML5 , þá er yfirlýsing um gerð skjals enn til í styttri mynd:

 <! DOCTYPE html>

datei.dtd (SYSTEM), í dæminu færslan datei.dtd , inniheldur skráarnafni ytri DTD. Hægt er að tilgreina skráarnafnið sem hvaða URI sem er .

Opinber auðkenni (PUBLIC) inniheldur almennt þekkt auðkenni fyrir DTD. Til dæmis er auðkennið "-//W3C//DTD XHTML 1.0 Strict//EN" notað til að lýsa DTD fyrirXHTML á einstakan hátt. Ef kerfið er þekkt fyrir kerfið notar kerfið tilheyrandi DTD og hleður ekki beint tilgreindum DTD úr kerfisauðkenni. Þetta forðast endurtekna hleðslu á DTD í vöfrum .

Færslan [ ... ] auðkennir innri DTD eða viðbætur við DTD.

Yfirlýsingar um álagningu

Innan DTD er hægt að skilgreina skjalagerðina með yfirlýsingum um frumefnisgerðir , eigindalista , einingar og merkingar og textablokka. Hægt er að nota sérstakar færibreytueiningar sem innihalda DTD hluta og eru aðeins leyfðar innan DTD.

Textablokkir eru annaðhvort CDATA eða PCDATA .

Uppbyggingarþættirnir (byggingareiningar) eru skilgreindar með því að nota eigindarúthlutanir:

CDATA

CDATA ( English Character Data ) auðkennir óritaða textablokk. Setningafræði fyrir CDATA svæði er:

 <! [CDATA [character data]]>

Á stafgagnasvæðinu eru allir stafir leyfðir, að undanskildu viðurkenningarmynstri fyrir lok ]]> CDATA svæðisins. Dæmi:

 <!phiaCDATA [<This> <data> er <not> <pared>.]]>

Innan einingarskilgreiningar í XML er setningafræðin:

 <! ENTITY magnari "stafagögn">

Í SGML verður CDATA leitarorðið að tilgreina skýrt:

 <! ENTITY magnari CDATA "stafagögn">

Á stafgagnasvæðinu eru allir stafir leyfðir, að undanskildu lokauðkenni stafstrengsins " fyrir "..." stafstrengi eða ' fyrir '...' stafstrengi. Dæmi:

 <! ENTITY & CDATA "& # 38;">

Persónugögnin &#38; eru ekki greindar af greiningaraðilanum.

PCDATA

Leitarorðið #PCDATA er notað fyrir PCDATA ( English Parsed Character Data ). Þetta markar textablokk sem getur einnig innihaldið frekari leiðbeiningar til þátttakandans. Innihald þessarar textablokkar er greint á setningafræðilega hátt með greiningaraðilanum. Öfugt við CDATA, aðeins stafir sem innihalda ekki merki, yfirlýsingar eða vinnsluleiðbeiningar geta verið með. Til dæmis er < (t.d. upphafstákn dags, t.d. <Beispiel> ) bannað hér.

Yfirlýsingar um frumefni (ELEMENT)

Yfirlýsing um frumefni er notuð til að skilgreina frumefni og mögulegt innihald þess. Aðeins þættir sem eru skilgreindir í DTD mega birtast í gildu skjali.

Hægt er að tilgreina innihald frumefnis með því að tilgreina önnur frumheiti og nokkur leitarorð og stafi.

  • #PCDATA fyrir staf innihald (sjá PCDATA )
  • EMPTY fyrir ekkert efni
  • ANY fyrir hvaða efni sem er
  • , fyrir pantanir
  • | fyrir valkosti (í skilningi „annaðhvort ... eða“)
  • () í hóp
  • * í hvaða skipti sem er (hvert á fætur öðru)
  • + að minnsta kosti einu sinni
  • ? fyrir enga eða nákvæmlega einu sinni
  • Ef engin stjarna, plúsmerki eða spurningarmerki er gefið, verður frumefnið að koma fram nákvæmlega einu sinni
 <! ELEMENT html (höfuð, líkami)>
<! ELEMENT hr EMPTY>
<! ELEMENT div (#PCDATA | p | ul | ol | dl | table | pre | hr |
          h1 | h2 | h3 | h4 | h5 | h6 | blokkarhlutfall | heimilisfang | fieldset) *>
<! ELEMENT dl (dt | dd) +>

Eigindayfirlýsingar (ATTLIST)

Eiginleikar eru skilgreindir innan eigindalista <!ATTLIST Elementname Attributliste> . Eigindalistinn inniheldur eigindanafn , gerð og forskriftir einstakra eiginleika, aðskildar með bili eða línuskilum.

Dæmi um þætti:

  • Auðkenni
  • IDREF og IDREFS
  • NMTOKEN og NMTOKENS
  • TILKYNNING og SKRÁNINGAR
  • Listar og NOTATION listar

Hægt er að nota eiginleikaupplýsingarnar til að tilgreina hvort eiginleiki verður að koma fyrir ( #REQUIRED ) eða ekki ( #IMPLIED ) eða hvort hann inniheldur fast gildi ( #FIXED ) og hvaða gildi er notað sem sjálfgefið gildi ef eiginleiki er ekki tilgreindur fyrir merki.

Sjálfgefin gildi fyrir eiginleika
#REQUIRED Tilgreina skal eigindina
#IMPLIED Eiginleiki er valfrjáls
"..." Sjálfgefið gildi ef eiginleikanum er sleppt
#FIXED "..." Eiginleiki hefur alltaf fast gildi

Dæmi um eigindaryfirlýsingu:

 <! ATTLIST img
   auðkenni kennitölu #EKKI
   src CDATA #KRAFT
   gamla CDATA #KREFT
   ismap IDREF #Einfaldur
>

Yfirlýsingar (ENTITY)

Eining er nafngreind skammstöfun fyrir stafstreng eða ytra skjal sem hægt er að nota innan DTD eða skjalsins. Eining á forminu &Name; er skipt út fyrir yfirlýst efni einingarinnar . (Fyrir almenna notkun, sjá Eining (merkingarmál) .)

Einingar samanstanda af strengjum. Þessir geta sjálfir innihaldið aðila og vel mótaða álagningu:

 <! ENTITY nafn "Benedict">
<! ENTITY páfi "& name; XVI.">
<! ENTITY wplink "<a href = 'http: //de.wikipedia.org'> Wikipedia </a>">

Einnig er hægt að skilgreina einingar fyrir innihald skráar. Almennt eða kerfisauðkenni er notað fyrir þetta.

 <! ENTITY Chapter1 SYSTEM "Chapter1.xml">
<! ENTITY important PUBLIC "- // private // MIKILVÆGT //" "mikilvægt.xml">

Þegar um er að ræða utanaðkomandi aðila er einnig hægt að tilgreina að það er eining sem ekki er greind (NDATA, ekki XML / SGML gögn). Í þessu tilfelli verður að gefa upp merkingu (hér „gif“).

 <! ENTITY bild SYSTEM "../grafik/bild.gif" NDATA gif>

Skýrslutilkynningar (NOTATION)

Skýringar eru athugasemdir við túlkun ytri gagna sem ekki eru unnin beint af greiningaraðila. Til dæmis geta merkingar átt við skráarsnið fyrir myndir.

 <! NOTATION gögn gerð SYSTEM "URL">
<! NOTATION gagnategund PUBLIC "identifier">

NMTOKEN

NMTOKEN ( nafnmerki ) er tengt auðkenni en er leyfilegra með reglum um nafngift. Til dæmis eru auðkenni með leiðandi tölustaf eða punkti leyfð fyrir NMTOKEN, en fyrir auðkenni eru aðeins bókstafir, hugmyndamyndir og undirstrikanir leyfðar í fyrsta lagi. Þannig er hvert auðkenni einnig NMTOKEN, en ekki öfugt.
Dæmi fyrir NMTOKEN:

 12alfa
.crc

Yfirlýsingardæmi:

 <! ATTLIST fæðingardagur
    ári NMTOKEN #KREFT
>

Parameter eining

Færibreytur innihalda nafngreinda streng, sem er tilgreint með %Name; er hægt að nota næstum hvenær sem er innan DTD. Á þennan hátt er til dæmis hægt að samþætta ytri skrár í DTD og stytta ítrekað íhluti. Breytueiningum er lýst yfir eins og venjulegum einingum , með einu prósentumerki fyrir framan nafn frumefnisins. Dæmi:

 <! ENTITY% file SYSTEM "other-file.ent">
%skrá;

<! ENTITY% foo.inhalt "(bar | doz) *">
<! ELEMENT foo% foo.content;>

Skilyrtir kaflar

Skilyrtur hluti er smíð sem er notaður til að kveikja eða slökkva á yfirlýsingum. Dæmi:

 <! [INNIHALT [
  <! ENTITY halló "heimurinn">
]]>

Kveikir á hallo . Eftirfarandi gildir í samræmi við það:

 <! [HANNAÐU [
  <! ENTITY halló "heimurinn">
]]>

að slökkva á hallo .

Hins vegar notarðu ekki skilyrt hluta aðeins eins og að ofan, heldur aðallega í tengslum við færibreytueiningar:

 <! ENTITY% soft "INCLUDE">
<! [% mjúkur; [
  <! ENTITY halló "heimurinn">
]]>

Færibreytan eining %weiche; er upptekið af einu af hugsanlegum leitarorðum INCLUDE eða IGNORE . Það fer eftir verkefninu, hallo einingunni er lýst yfir eða ekki.

Með þessari tegund merkinga er hægt að laga skilyrtan hluta með því að skrifa yfir færibreytueiningar.

Dæmi um stutt skjal með tilvísun í ytri DTD:

 <? xml version = "1.0"?>
<! DOCTYPE halló kerfi "hello.dtd">
<Halló> Halló heimur! </hello>

Í dæminu standalone="no" tilgreina pseudo-attribute standalone="no" í XML-yfirlýsingunni (það er að utanaðkomandi DTD er krafist):

 <? xml version = "1.0" standalone = "no"?>
<! DOCTYPE halló kerfi "hello.dtd">
<Halló> Halló heimur! </hello>

Innihald hallo.dtd :

 <! ELEMENT halló (#PCDATA)>

Stutt skjal með innri DTD:

 <? xml version = "1.0"?>
<! DOCTYPE halló [<! ELEMENT halló (#PCDATA)> ]>
<Halló> Halló heimur! </hello>

Í dæminu standalone="yes" tilgreina gervi-eigindin standalone="yes" í XML-yfirlýsingunni (þ.e. engin ytri DTD er krafist):

 <? xml version = "1.0" standalone = "yes"?>
<! DOCTYPE halló [<! ELEMENT halló (#PCDATA)> ]>
<Halló> Halló heimur! </hello>

Sjá einnig

Vefsíðutenglar