1. DTD
a. Deklaracja DTD
<!DOCTYPE nazwa typu [
Tutaj deklaracja elementów ]>
b. 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) >
c. 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
1. Deklaracja XML Schema
<?xml version=”1.0” encoding=”UTF-8”>
<xsd:schema xmlns:xsd=”http://www.w3c.org/2001/XMLSchema”>
…
</xsd:schema>
2. Typy danych
a. 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>
b. 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 3. 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>
4. Definiowanie atrybutów w ramach elementu
<xsd:attribute name=”nazwa” use=”rodzaj użycia”/>
Dopuszczalne rodzaje użycia:
required
optional
prohibited