XML Schema
XML Schema publicate como recommendation per le World Wide Web Consortium (W3C) in le maio 2001 es un linguage de description de formato de documento XML permittente definir le structura e le typo de contento de un documento XML. Iste definition permitte notabilemente verificar le validitate de iste documento.

Il es possibile describer un organisation de vocabularios de origines differente, per le usage del spatios de nomines. Il es possibile combinar le schemas mesme, e exprimer un combination pro le documento contenite, como alcuno qui parlarea de geographia e de sociologia in un mesme texto.

Il es equalmente possibile, post un validation, de saper con qual regula un information particular ha essite verificate: illo es le serie de validation post-schema, o PSVI (post-schema-validation infoset).

Un definition se compone de un o plure documentos XML, usualmente nominate XML Schema Definition in anglese, o file XSD.

Un instantia de un XML Schema es un pauc le equivalente de un definition de typo de documento (DTD). XML Schema apporta totevia plure differentias con le DTD: illo permitte per exemplo definir dominios de validitate pro le valor de un campo, durante que illo non es possibile in un DTD; in contrasto, illo non permitte definir entitates; XML Schema es mesme un documento XML, durante que le DTD es documentos SGML.

Iste linguage de description de contento de documentos XML es mesme definite per un schema, e le marcationes de definition de illo es auto-definiente (isto es un exemplo de definition recursive).

Le recommendation del W3C 1.0 se compone de un documento de presentation (non normative), de un documento specificante como definir le structura, e de un documento specificante como definir le datos. Le ultime edition, de version 1.0, de iste recommendation, data de 2004. Le W3C travalia actualmente super le version 1.1 cuje objectivo es definir le notiones de version de schema, e coercitiones secundo le presentia de tal o tal valor.

Modello de XML Schema 
Le recommendation specifica le validation del documentos XML a partir de un modello abstracte; illo forni le formato XML.

Pro iste modello abstracte, un schema es un ensemble de componentes, tal como:
 le declaration de elementos (le notion de elementos veni del recommendation XML),
 le declaration de attributos (illo veni anque del recommendation XML),
 le definition de typos simple (valores constituite unicamente a partir de un catena de characteres),
 le definition de typos complexe (valores constituite de attributos e de altere valores).

Illo introduce equalmente le typo anyType (ulle typo), base de tote le typos usate.

Cata componente es inquadrate per un unitate de information, al senso del recommendation XML Information Set (nominate Infoset) del W3C.

Pro iste que es del usage, XML Schema permitte de definir elementos e typos de valor o in particular, o localmente a un contexto nominate. Le combination de iste duo modos permitte definir quatro technicas:
 pupas russe (on describe le elementos per installar los le unes in le alteres), 
 trenchos de salamis (definitiones global del elementos, ma local del typos), 
 persianas venetian o jalousies (definition local del elementos, ma global del typos), 
 jardin de Eden (definition global del elementos e del typos).

XML Schema determina le unicitate como un combination de nodos, relativemente a un contexto, comparante a lor componentes. Assi, on pote per exemplo affirmar e verificar que un persona es unic, in le contexto de un adressario, comparante a su nomine e su prenomine.

Typos de datos 

Le typos de datos integrate es:
 string
 normalizedString, basate super string
 token, basate super normalizedString
 language, basate super token
 NMTOKEN, basate super token, e NMTOKENS deriva de illo
 Name, basate super token
 NCName, basate super Name
 ID, basate super NCName
 IDREF, basate super NCName, e IDREFS deriva de illo 
 ENTITY, basate super NCName, e ENTITIES deriva de illo 
 duration
 dateTime
 date
 time
 gYear
 gYearMonth
 gMonth
 gMonthDay
 gDay
 boolean
 NOTATION
 QName (Nomine Qualificate)
 anyURl
 base64Binary
 hexBinary
 float
 double
 decimal
 integer, basate super decimal
 long, basate super integer
 nonNegativeInteger, basate super long
 positiveInteger, basate super nonNegativeInteger
 unsignedLong, basate super nonNegativeInteger
 unsignedInt, basate super unsignedLong
 unsignedShort, basate super unsignedInt, e unsignedByte deriva de illo 
 int, basate super long
 short, basate super int, e byte deriva de illo 
 nonPositiveInteger, basate super integer, e negativeInteger deriva de illo

Exemplo 
Un exemplo de file XSD (persona.xsd):
  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="persona">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="nomine" type="xs:string" />
          <xs:element name="prenomine" type="xs:string" />
          <xs:element name="data_nascentia" type="xs:date" />
          <xs:element name="establimento" type="xs:string" />
          <xs:element name="num_tel" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:schema>

Sequite de un file XML valide:

  <?xml version="1.0" encoding="UTF-8"?>
  <persona xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="persona.xsd">
    <nomine>MBODJ</nomine>
    <prenom>Babacar</prenom>
    <data_nascentia>1996-10-06</data_nascentia>
    <establimento>NIIT</establimento>
    <num_tel>764704140</num_tel>
  </persona>

Implementation del Dublin Core 
XML Schema corresponde a un alte nivello de formalisation in le schemas de classification. XML Schema permitte implementar le standard Dublin Core de metadatos.

Le nomines de elementos es indicate in le modo sequente:

 <xs:element name="title" type="elementType" />
 <xs:element name="creator" type="elementType" />
 <xs:element name="subject" type="elementType" /> 
 <xs:element name="description" type="elementType" /> 
 <xs:element name="publisher" type="elementType" /> 
 <xs:element name="contributor" type="elementType" /> 
 <xs:element name="date" type="elementType" /> 
 <xs:element name="type" type="elementType" /> 
 <xs:element name="format" type="elementType" /> 
 <xs:element name="identifier" type="elementType" /> 
 <xs:element name="source" type="elementType" /> 
 <xs:element name="language" type="elementType" /> 
 <xs:element name="relation" type="elementType" /> 
 <xs:element name="coverage" type="elementType" /> 
 <xs:element name="rights" type="elementType" />

Exemplo de usage 
XML Schema es usate conjunctemente con le formulario XForms pro validar le datos desde le sasimento.

Historia 
XML schema es le conclusion de diverse propositiones veniente essentialmente de Microsoft in cooperation con le Universitate de Edinburgh in 1998. Illo trova su origine in le linguage de description SGML. Le DTD habente trovate lor limites, Microsoft ha proponite de usar XML pro describer documentos XML con formatos como XML-Data o Document Content Description e ha recipite le appoio del Universitate de Darmstadt (Germania) in 1999. Le ensemble del propositiones ha convergite verso un prime specification de XML schema initio maio 2001.

Referentias

Bibliographia 
 Les web services. Techniques, démarches e outils XML, WSDL, SOAP, UDDI, RosettaNet, UML. Hubert Kadima, Valérie Monfort, Dunod, 2003.

Vide etiam

Ligamines externe 
  A Short History of XML Schema Languages
  Le pagina super XML Schema del W3C
  Traduction francese del recommendation del W3C super le schemas XML del 2de maio 2001 Tomo 0 e Tomo 1; le tomo 2 del recommendation non es traducite.

XML

Internet