XML XSLT
StartJęzyk XMLDTDXSLTXML SchemaStyle CSSXHTMLXSLTWMLAnkietaLinki
Menu serwisu
Start
Język XML
DTD
XSLT
XML Schema
Style CSS
XHTML
XSLT
WML
Ankieta
Linki

Partnerzy

Internet - podstawy internetu, email, Usenet, FTP, WWW

Tonery,tusze - bębny do drukarek, atramenty do drukarek, folie do faksów w sklepie internetowym Tonershop

Sieci komputerowe - systemy sieciowe, technologie

Systemy sprzedaży - handel, kody kreskowe, identyfikacja towarów

Automatyczna identyfikacja - systemy identyfikacji, etykiet

XML Schema

DTD jest podstawowym i powszechnie stosowanym sposobem definiowania typów dokumentów XML. Jak wynika z przedstawionych w rozdziale informacji, DTD  posiada wiele ograniczeń. 

Alternatywnym mechanizmem definiowania typów dokumentów są schematy XML – XML Schema. Mechanizm ten w dużej mierze jest zorientowany obiektowo. Schemat XML jest tworzony na bazie definicji zbioru typów i ich wystąpień. Schematy XML zapisywane są w formacie XML, jako poprawne dokumenty XML. W przypadku DTD mieliśmy do czynienia z osobną notacją i składnią określania reguł.

Istnieją dwie grupy typów stosowanych XML Schema - proste oraz złożone. Przydzielając dla elementu typ prosty określa się, że może on zawierać jedynie dane znakowe, bez atrybutów i elementów potomnych. Typy złożone mogą zawierać dowolne elementy, dane znakowe i atrybuty.


DTD jest podstawowym i powszechnie stosowanym sposobem definiowania typów dokumentów XML. Jak wynika z przedstawionych w rozdziale informacji, DTD  posiada wiele ograniczeń. 

Alternatywnym mechanizmem definiowania typów dokumentów są schematy XML – XML Schema. Mechanizm ten w dużej mierze jest zorientowany obiektowo. Schemat XML jest tworzony na bazie definicji zbioru typów i ich wystąpień. Schematy XML zapisywane są w formacie XML, jako poprawne dokumenty XML. W przypadku DTD mieliśmy do czynienia z osobną notacją i składnią określania reguł.

Istnieją dwie grupy typów stosowanych XML Schema - proste oraz złożone. Przydzielając dla elementu typ prosty określa się, że może on zawierać jedynie dane znakowe, bez atrybutów i elementów potomnych. Typy złożone mogą zawierać dowolne elementy, dane znakowe i atrybuty.

Najważniejsze typy proste to: string, boolean, float, double, decimal, timeInstant, timeDuration, recurringInstant, binarym uri-reference, ID, IDREF, ENTITY,NOTATION, language, IDREFS, ENTTIES, NMTOKEN, NMTOKENS, Qname, NCName, integer, non-positive-integer, negative-integer, long, int, byte, non-negative-integer,, unsigned-int, insigned-long, umsigned-short, unsigned-byte, positive-integer, date, time. Jak widać, wśród typów prostych znajdują się m.in. nazwy odpowiadające typom atrybutów w DTD. Ułatwia to konwersję definicji DTD na schemat XML.

Do zapisu schematów XML stosowany jest język XSDL.
Wśród istotniejszych cech związanych z XML Schema można wskazać:

  • deklarowanie typów zawartości elementów i atrybutów jest znacznie bardziej precyzyjne niż w przypadku DTD;
  • w dokładniejszy sposób można kontrolować liczbę elementów, która może wystąpić w dokumencie XML (liczbę wystąpień elementu można podawać m.in. w formie zakresu);
  • można deklarować niepowtarzalność danych  w części dokumentu;
  • można deklarować wiele elementów o tej samej nazwie, a różnej składni w różnych miejscach dokumentu;
  • XML Schema obsługuje przestrzenie nazw.

Przykład osoby.xsd prezentuje schemat XML dla dokumentu 10.xml

Osoby.xsd – przykład schematu XML

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
 <xsd:element name="LISTAOSOB">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element ref="OSOBA" minOccurs="0" maxOccurs="unbounded"/>
   </xsd:sequence>
   <xsd:attribute name="generated" type="xsd:dateTime"/>
  </xsd:complexType>
 </xsd:element>
 <xsd:element name="OSOBA">
  <xsd:annotation>
   <xsd:appinfo>
    <od:index index-name="PrimaryKey" index-key="LP " primary="yes" unique="yes" clustered="no"/>
   </xsd:appinfo>
  </xsd:annotation>
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="LP" type="xsd:double" minOccurs="0" od:jetType="double" od:sqlSType="float"/>
    <xsd:element name="IMIE" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
     <xsd:simpleType>
      <xsd:restriction base="xsd:string">
       <xsd:maxLength value="255"/>
      </xsd:restriction>
     </xsd:simpleType>
    </xsd:element>
    <xsd:element name="NAZWISKO" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
     <xsd:simpleType>
      <xsd:restriction base="xsd:string">
       <xsd:maxLength value="255"/>
      </xsd:restriction>
     </xsd:simpleType>
    </xsd:element>
    <xsd:element name="ODDZIAL" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
     <xsd:simpleType>
      <xsd:restriction base="xsd:string">
       <xsd:maxLength value="255"/>
      </xsd:restriction>
     </xsd:simpleType>
    </xsd:element>
    <xsd:element name="NR_DEPARTAMENTU" type="xsd:unsignedByte" minOccurs="0" od:jetType="byte" od:sqlSType="tinyint"/>
    <xsd:element name="DATA_ZATRUDNIENIA" type="xsd:dateTime" minOccurs="0" od:jetType="datetime" od:sqlSType="datetime"/>
    <xsd:element name="STAWKA" type="xsd:double" minOccurs="0" od:jetType="currency" od:sqlSType="money"/>
    <xsd:element name="PLACA" type="xsd:double" minOccurs="0" od:jetType="currency" od:sqlSType="money"/>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>

Aby skojarzyć dokument XML ze schematem należy dodać dodatkowe atrybuty do elementu głównego.  Podłączenie jest różne zależnie od tego, czy projektowany typ dokumentu jest związany z osobną docelową przestrzenią nazw.
Przykład podłączenia w dokumencie bez własnej przestrzeni nazw:

<LISTAOSOB
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="osoby.xsd">

Przykład podłączenia w dokumencie z przestrzenią nazw:

<LISTAOSOB xmlns="http://robert.wsi.edu.pl/schematy/wsiz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://robert.wsi.edu.pl/schematy/wsiz przedmioty.xsd">

Przykładem oprogramowania, wykorzystującego schematy XML jest MS Office 2003 w wersji Professional.  Wiele narzędzi wykorzystujących XML w tym pakiecie wymaga sformułowanego schematu.

z programów, który można wykorzystać do tworzenia schematów bez szczegółowej znajomości języka XSDL jest wymieniony już wcześniej Altoova XMLSPY.

Więcej informacji na temat XML Schema można znaleźć między innymi w serwisie internetowym World Wide Web Consortium http://www.w3c.org/.

 
« poprzedni artykuł   następny artykuł »
 
Wydanie polskie: Copyright (C) 2005 Polskie Centrum Joomla! :: (C) 2018 XML XSLT
Joomla! jest wolnym oprogramowaniem udostępnianym na warunkach licencji GNU/GPL.
www.xmlxsl.pl - Język XML, język XSLT, DTD, języki XHTML, WML