1 / 33

Extensible Markup Language

Extensible Markup Language. XML validálás. Hernyák Zoltán http://aries.ektf.hu/~hz hz@aries.ektf.hu. XML validálás. Az XML alapkövetelménye a jól formázottság Ha nem jól formázott, a feldolgozó szoftver be sem olvassa Ha jól formázott, még nem biztos hogy olyan a szerkezete,

alcina
Download Presentation

Extensible Markup Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Extensible Markup Language XML validálás Hernyák Zoltán http://aries.ektf.hu/~hz hz@aries.ektf.hu

  2. XML validálás Az XML alapkövetelménye a jól formázottság Ha nem jól formázott, a feldolgozó szoftver be sem olvassa Ha jól formázott, még nem biztos hogy olyan a szerkezete, mint amilyet várunk A szerkezet persze betölthető, és ha nem feldolgozható, akkor a feldolgozó szoftver hibát jelezhet ki De egyszerűbb ha egy szabályrendszerrel írjuk elő a szerkezeti elvárásainkat A szabályrendszert a kliens is át tudja venni, és ellenőrízni tudja, hogy amit előállít, az megfelelő-e a nélkül, hogy a feldolgozó szoftverrel ténylegesen rendelkezne Így univerzális szerkezet-ellenőrző program írható, amelynek két paramétere van - egy konkrét xml file - egy szerkezet-leíró file (szintén xml formájú)

  3. XML DTD DTD – Document Type Definition Szabályok gyűjteménye Megadja hogy kell az XML-nek megírva lennie XML struktúrát ír le (Jellemzően) külső file-ban tároljuk A benne szereplő szabályokat összevetjük egy konkrét XML dokumentummal Ezt végzi az XML PARSER jellegű program Ha az XML dokumentum megfelel a szabályoknak, azt mondjuk rá: VALID Egy XML dokumentumot a parser csak akkor tud ellenőrízni, ha jól formázott (well-formed)

  4. XML – belső DTD A DTD leírást beszúrhatjuk az XML file belsejébe

  5. XML – külső DTD Vagy csatolhatjuk külső file-ként is:

  6. XML DTD DTD elem alakja:

  7. XML DTD Belső DTD leírás: <!DOCTYPE root [ … ]> Külső privát DTD file: <!DOCTYPE root SYSTEM <url> > <!DOCTYPE root SYSTEM ”c:\person.dtd”> Külső publikus DTD file: <!DOCTYPE root PUBLIC <név> <uri> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

  8. XML DTD Publikus DTD esetén: név (részek // elválasztva): prefix (előtag) ISO: ISO elfogadott név +: elfogadott, de nem ISO szabvány -: nem elfogadott, nem ISO szabvány a DTD tulajdonosa a DTD leírása ISO 639 nyelvi leírás uri: a DTD elérési útja, ha név alapján nem azonosítható <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd” >

  9. XML DTD – entitás definíció Entitás: név-érték páros Az entitás értékére nevével lehet hivatkozni &név; formában.

  10. XML DTD – külső entitás definíció Az entitás értékét külső fileban is lehet tárolni:

  11. XML DTD – NDATA külső entitás definíció Nem elemzett külső entitás-tartalom:

  12. XML DTD – paraméter entitás Egy általános entitás nem használhtó a DTD definícióban, csak az XML-ben magában A paraméter entitás csak a DTD belsejében használható A paraméter entitás deklarációjában a % jel fel van tüntetve Ezt külső file-ban kell tartani!

  13. XML DTD - elemleírás Elemleírás: name: az elem neve content-model: EMPTY: üres, nem lehet tartalma ANY: bármi lehet PCDATA: parsed character data (feldolgozott text) vagyis tartalmazhat gyerek-elemeket CDATA: plain text, szimpla szöveg, nem tartalmazhat gyerek elemeket <gyerek elem definíciók>

  14. XML DTD - elemleírás HTML <br/> elem leírása: <!ELEMENT br EMPTY> <br /> Konkrét gyerek elemek felsorolása (ebben a sorrendben): <!ELEMENT person (name,sex,address) > <person> <name>…</name> <sex>…</sex> <address>…</address> </person>

  15. XML DTD - elemleírás Pontosan egy előfordulás: <!ELEMENT person (name,sex,address) > <!ELEMENT person (name, sex, address?) > Előfordulhat (vagy 0 vagy 1 előfordulás): Legalább egy (vagy 1 vagy több előfordulás): <!ELEMENT person (name, sex, phone+) > Tetszőleges sok (vagy 0, vagy 1, vagy több előfordulás): <!ELEMENT person (name, sex, child*) >

  16. XML DTD - elemleírás Vagy ez vagy az: <!ELEMENT person (name,sex,(email|phone)) > <!ELEMENT person (#PCDATA, name, sex) > Óvatosan kezeljük a * és egyéb karakterekkel: <!ELEMENT person (name,sex, (email|phone)* ) > Kevert tartalom: Komplex példa:

  17. XML DTD – példák

  18. XML DTD – attribútum-leírás Attribútum-leírás: Általánosan:

  19. XML DTD – attribútum-leírás !ATTLIST elem neve: a tartalmazó elem neve attribútum neve: az attribútum neve attribútum értéke: mi lehet a tartalma? flag: kötelező / lehetséges / …

  20. XML DTD – attribútum-leírás • Attribútum értéke lehet: • CDATA: tetszőleges string • Felsorolás: megadjuk a lehetésges értékeket • NMTOKEN: (name token) az érték első betűje spec kar lehet csak • NMTOKENS: felsorolás (white-space elválasztóval) • ID: az érték egyedi kell legyen ezen XML-en belül • IDREF: hivatkozás egy ID elemre (értékével) • IDREFS: felsorolás • ENTITY: egy entitás neve (lásd !ENTITY definiálás) • ENTITIES: entitás-nevek felsorolása • Attribútum flag lehet: • #REQUIRED: kötelező megadni • #IMPLIED: opcionális attribútum • #FIXED: az értéket nem lehet megváltoztatni

  21. XML DTD – CDATA példa

  22. XML DTD – ID példa • ID: • ilyenből elemenként csak egy lehet • csak #IMPLIED vagy #REQUIRED lehet • az érték első karaktere betű, aláhúzás, vagy kettőspont lehet • további karakterek: a..z, A..Z, 0..9, _, -, : • az értéke egyedi kell legyen az XML dokumentumban

  23. XML DTD – IDREF példa • IDREF: • csakis olyan értéke lehet, amely ID-ként szerepel valahol

  24. XML DTD – ATTLIST felsorolás • vagy kiírjuk minden attribútum definíciónál az elem nevét is • vagy adott elemnévhez soroljuk fel az attribútumokat

  25. XML DTD – felsorolás példa

  26. XML DTD – NMTOKEN (name token) • NMTOKEN: • a tartalma akár xml tag név is lehetne • névképzési szabályoknak meg kell felelnie • a..z, A..Z, 0..9, _, -, : • stb

  27. XML DTD – alapértelmezett érték • alapértelmezett: • a status értéke csak normal vagy important lehet • ha nincs kitöltve, akkor olyan, mintha normal lenne írva

  28. XML DTD – fixed alapértelmezett érték Kitölteni sem érdemes, kötelezően ”monthly” értékű

  29. XML DTD – ENITIÁSOK • NMTOKEN: • a tartalma akár xml tag név is lehetne • névképzési szabályoknak meg kell felelnie • a..z, A..Z, 0..9, _, -, : • stb

  30. XML DTD – feldolgozási utasítás • Feldolgozási utasítás • Tartalma „bármi” lehet • A megnyitó alkalmazásnak szól

  31. XML DTD – ![CDATA[ … ]] nem feldolgozandó

  32. XML DTD – NOTATION megjegyzés • NOTATION: • nem feldolgozott tartalom típusát írja le

  33. XML DTD – feladat • FELADAT: • készítsünk DTD-d az alábbi XML file-hoz • csak elemek vannak benne • útvonal: • FELADAT: • készítsünk DTD-d az alábbi XML file-hoz • attribútumok is vannak benne: • útvonal:

More Related