XML Schema
XML Schema |
---|
instantia de: XML schema[*], XML-based format[*], file format[*] |
subclasse de: data schema[*] |
|
data de creation: maio 2001 |
sito web official: https://www.w3.org/TR/xmlschema-0/, https://www.w3.org/TR/xmlschema-1/, https://www.w3.org/TR/xmlschema-2/ |
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)[1].
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[2] es definir le notiones de version de schema, e coercitiones secundo le presentia de tal o tal valor.
Modello de XML Schema
[modificar | modificar fonte]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[3]:
- pupas russe (on describe le elementos per installar los le unes in le alteres)[4],
- trenchos de salamis (definitiones global del elementos, ma local del typos)[5],
- persianas venetian o jalousies (definition local del elementos, ma global del typos)[6],
- jardin de Eden (definition global del elementos e del typos)[7].
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[8].
Typos de datos
[modificar | modificar fonte]Le typos de datos integrate es[9]:
- 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
- NCName, basate super Name
- token, basate super normalizedString
- normalizedString, basate super string
- duration
- dateTime
- date
- time
- gYear
- gYearMonth
- gMonth
- gMonthDay
- gDay
- boolean
- NOTATION
- QName (Nomine Qualificate[10])
- 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
- unsignedInt, basate super unsignedLong
- int, basate super long
- short, basate super int, e byte deriva de illo
- nonNegativeInteger, basate super long
- nonPositiveInteger, basate super integer, e negativeInteger deriva de illo
- long, basate super integer
- integer, basate super decimal
Exemplo
[modificar | modificar fonte]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
[modificar | modificar fonte]XML Schema corresponde a un alte nivello de formalisation in le schemas de classification. XML Schema permitte implementar le standard Dublin Core de metadatos[11].
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
[modificar | modificar fonte]XML Schema es usate conjunctemente con le formulario XForms pro validar le datos desde le sasimento.
Historia
[modificar | modificar fonte]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[12] 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[13].
Referentias
[modificar | modificar fonte]- ↑ (anglese) A Schema for Schemas (normative)
- ↑ (anglese) Introduction to Version 1.1
- ↑ (anglese) Introducing Design Patterns in XML Schemas
- ↑ (anglese) Schema Design Patterns Russian Doll
- ↑ (anglese) Schema Design Patterns Salami Slice
- ↑ (anglese) Schema Design Patterns Venetian Blind
- ↑ (anglese) Schema Design Patterns Garden of Eden
- ↑ Thomasson, Jean-Jacques (2002). Schéma XML (in fr). Eyrolles, 160-165. ISBN 2-212-11195-9.
- ↑ (anglese) Built-in datatypes, XML Schema recommendation, W3C
- ↑ (anglese) QName
- ↑ (anglese) XML schemas to support the Guidelines for implementing Dublin Core in XML
- ↑ (anglese) Cover Pages: XML Schema
- ↑ (anglese) Le W3C recommenda XML Schema, Communicato de pressa del W3C, 2 maio 2001
Bibliographia
[modificar | modificar fonte]- Les web services. Techniques, démarches e outils XML, WSDL, SOAP, UDDI, RosettaNet, UML. Hubert Kadima, Valérie Monfort, Dunod, 2003.
Vide etiam
[modificar | modificar fonte]Ligamines externe
[modificar | modificar fonte]- (anglese) A Short History of XML Schema Languages
- (anglese) Le pagina super XML Schema del W3C
- (francese) 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.