DTD
Deklaracja DTD
<!DOCTYPE nazwa typu [
Tutaj deklaracja elementów
]>
Deklaracja elementu
<!ELEMENT nazwa zawartość>
Deklaracja elementu pustego
<!ELEMENT pusty EMPTY>
Deklaracja dowolnego elementu
<!ELEMENT dowolny ANY>
Określanie zawartości elementu:
Lista dopuszczalnych elementów np. (pierwszy, drugi, trzeci) zakłada kolejne występowanie elementów o nazwach pierwszy, drugi, trzeci
Wybór np. (ten | tamten)
Łączenie listy i wyboru np. (pierwszy | drugi), (trzeci | czwarty)
Liczności wystąpień elementów - deklarujemy przy określaniu zawartości
Domyślnie element musi wysąpić raz :
<!ELEMENT pojedyncze (pierwszy, drugi) >
Element opcjonalny
<!ELEMENT opcjonalne (pierwszy?, drugi?)>
Wiele wystąpień (0 lub więcej)
<!ELEMENT wiele (pierwszy*, drugi*)>
Więcej niż jeden
<!ELEMENT wiecejNizJeden (pierwszy+, drugi+)>
Zawartość tekstowa:
<!ELEMENT tekst (#PCDATA) >
Deklaracja atrybutu
<!ATTLIST nazwa.elementu definicje.atrybutow>
Atrybuty wyliczalne z wartością domyślną (w tym przypadku CZERWONY)
<!ATTLIST farba KOLOR (CZERWONY | ZIELONY | NIEBIESKI) „CZERWONY” >
Typy atrybutów:
ID - identyfikator np. „A51”
IDREF - wskażnik do identyfikatora
IDREFS -wskaźniki do identyfikatorów np. „A51 C12 A11”
CDATA - tekst
ENTITY - odnośnik do encji zewnętrznej np. pliku
…..
Przykłady atrybutów
<!ATTLIST def.terminu
id ID #REQUIRED
nazwa CDATA #IMPLIED>
<!ATTLIST formularz
Metoda CDATA #FIXED „POCZTA”>
2. XML Schema
Deklaracja XML Schema
<?xml version=”1.0” encoding=”UTF-8”>
<xsd:schema xmlns:xsd=”http://www.w3c.org/2001/XMLSchema”>
…
</xsd:schema>
Typy danych
Proste - typ prosty definuje element zawierający tylko i wyłącznie tekst
Definiowanie typu prostego:
<xsd:simpleType name=”nazwa”/>
Definiowanie typu prostego wraz z orgraniczeniami:
<xsd:simpleType name=”bardzoOgraniczonyTyp”>
<xsd:restriction base=”xsd:string”> (ograniczamy do typu string)
<xsd:pattern value=”JestemBardzoOgraniczony”/>
<xsd:pattern value=”JestemBardziejOgraniczony”/>
</xsd:restriction>
</xsd:simpleType>
Deklarowanie listy:
<xsd:simpleType name="typListowy">
<xsd:list>
<xsd:simpleType name="">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:list>
</xsd:simpleType>
Złożone - typ złożony może składać się z tekstu oraz innych elementów
Definiowanie typu złożonego
<xsd:complexType name=”….”>
<rodzaj struktury>
Deklaracja elementów
</rodzaj struktury>
</xsd:complexType>
Dostępne rodzaje struktury:
<xsd:sequence> sekwencja
<xsd:choice> lista wyboru
<xsd:all> wszystkie elementy w dowolnej kolejności
Deklaracja elementów
<xsd:element name=”nazwa”/>
Rozbudowany o typ
<xsd:element name=”nazwa” type=”nazwatypu”/>
Inne ograniczenia:
minOccurs
maxOccurs
fixed
default
required
Jest możliwe definiowanie typu danych od razu po deklaracji elementu np.:
<xsd:element name=”nazwa”>
<xsd:simpleType>
…
</xsd:simpleType>
</xsd:element>
Definiowanie atrybutów w ramach elementu
<xsd:attribute name=”nazwa” use=”rodzaj użycia”/>
Dopuszczalne rodzaje użycia:
required
optional
prohibited