XSD XML Schema Definition: diferència entre les revisions

De FFAWiki
Cap resum de modificació
 
(Hi ha 13 revisions intermèdies del mateix usuari que no es mostren)
Línia 2: Línia 2:




==[[Plantilla XSD]]==
== Plantilla ==
 
<?xml version="1.0" encoding="UTF-8"?>
 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 
 
:<xs:element name="titol" type="xs:string"/>
 
:<xs:attribute name="nom" type="xs:string"/>
 
:<xs:element name="llibre">
 
::<xs:complexType>
 
:::<xs:sequence>
 
::::<xs:element ref="titol" minOccurs="1" maxOccurs="unbounded"/>
 
:::</xs:sequence>
 
:::<xs:attribute ref="nom"/>
 
::</xs:complexType>
 
:</xs:element>
</xs:schema>
 
==Capçalera==
 
=== Capçalera XML ===
 
:<?xml version="1.0" encoding="UTF-8"?> (Declaració XML)
:<marcadores xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" (Declaració espai de noms)
:xsi:noNamespaceSchemaLocation="marcadores.xsd"> (indica que l’arxiu xsd está a la mateixa carpeta que el XML)
 
=== Capçalera XSD ===
 
:<<?xml version="1.0" encoding="UTF-8"?> (Declaració XML)
:<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> (Declaració espai de noms)
 
== Components Basics ==
 
===xs:element===
 
====name:====
 
:: Indica el nom de l'element. '''Obligatori''', si l'element és l'arrel, és <xs:schema>
 
====ref:====
 
:: Indica que la declareció de l'element es troba en algún lloc de l'esquema. (''' No es pot fer servir si l'element pare és <xs:schema>. No pot aparèixer amb name.''')
 
====type:====
 
:: Indica el tipus de dada que emmagatzemará l'element. ('''Nomès pot anar amb name.''')
 
====default:====
 
:: Valor que apareixerà per defecte. ('''Només es pot fer servir amb dades de tipus text.''')
 
====minOccurs:====
 
::Indica el nombre mínim de vegades que ha d'apatèixer l'element. ('''No es pot fer servir si l'element pare és <xs:schema>. Va desde 0 fins il·limitat (unbounded). Per defecte 1.)
 
====maxOccurs:====
 
::Indica el nombre màxim de vegades que ha d'aparèixer l'element. ('''No es pot fer servir si l'element pare és <xs:schema>. Va desde 0 fins il·limitat (unbounded). Per defecte 1.)
 
===xs:attribute===
 
====name:====
 
:: Indica el nom de l'atribut. '''Obligatori'''.
 
====ref:====
 
:: Indica que la declareció de l'atribut es troba en algún lloc de l'esquema. (''' No es pot aparèixer amb name.''')
 
====type:====
 
:: Indica el tipus de dada que emmagatzemará l'atribut. (''' Obligatori. Nomès pot aparèixer amb name.''')
 
====use:====
 
:: Indica si l'existència de l'atribut és opcional ('''optional''') o obligatòria ('''required'''). (''' Opcional. Per defecte opcional.''')
 
====default:====
 
::Valor que apareixerà per defecte. (''' Opcional. Només es pot fer servir amb dades tipus text.)
 
====fixed:====
 
::Valor obligatòri, només pot contenir aquest valor o cap. (''' Opcional. Només es pot fer servir amb dades de tipus text.)


== XSD Restriccions ==
== XSD Restriccions ==
Línia 12: Línia 107:
=== Llista ===
=== Llista ===


<xs:simpleType name="rGenere">
:<xs:simpleType name="rGenere">
:<xs:restriction base="xs:string">
::<xs:restriction base="xs:string">
::<xs:enumeration value="comedia"/>
:::<xs:enumeration value="comedia"/>
::<xs:enumeration value="acció"/>
:::<xs:enumeration value="acció"/>
:</xs:restriction>
::</xs:restriction>
</xs:simpleType>
:</xs:simpleType>


=== Digits Màxims ===
=== Digits Màxims ===


<xs:simpleType name="rIsbn">
:<xs:simpleType name="rIsbn">
:<xs:restriction base="xs:integer">
::<xs:restriction base="xs:integer">
::<xs:totalDigits value="13"/>
:::<xs:totalDigits value="13"/>
:</xs:restriction>
::</xs:restriction>
</xs:simpleType>
:</xs:simpleType>


=== Decimals Màxims ===
=== Decimals Màxims ===


<xs:simpleType name="rPreu">
:<xs:simpleType name="rPreu">
:<xs:restriction base="xs:decimal">
::<xs:restriction base="xs:decimal">
::<xs:fractionDigits value="2"/>
:::<xs:fractionDigits value="2"/>
:</xs:restriction>
::</xs:restriction>
</xs:simpleType>
:</xs:simpleType>


=== Valor minim i màxim===
=== Valor minim i màxim===


<xs:simpleType name="rEdat">
:<xs:simpleType name="rEdat">
:<xs:restriction base="xs:integer">
::<xs:restriction base="xs:integer">
::<xs:minInclusive value="18"/>
:::<xs:minInclusive value="18"/>
::<xs:maxInclusive value="150"/>
:::<xs:maxInclusive value="150"/>
:</xs:restriction>
::</xs:restriction>
</xs:simpleType>
:</xs:simpleType>


=== Patró d'un string ===
=== Patró d'un string ===


<xs:simpleType name="rDni">
:<xs:simpleType name="rDni">
:<xs:restriction base="xs:string">
::<xs:restriction base="xs:string">
::<xs:pattern value="[0-9]{8}[A-Z]"/>
:::<xs:pattern value="[0-9]{8}[A-Z]"/>
:</xs:restriction>
::</xs:restriction>
</xs:simpleType>
:</xs:simpleType>


=== Patró Numèric ===
=== Patró Numèric ===


<xs:simpleType name="rTelefon">
:<xs:simpleType name="rTelefon">
:<xs:restriction base="xs:integer">
::<xs:restriction base="xs:integer">
::<xs:pattern value="[6-9][0-9]{8}"/>
:::<xs:pattern value="[6-9][0-9]{8}"/>
:</xs:restriction>
::</xs:restriction>
</xs:simpleType>
:</xs:simpleType>

Revisió de 20:23, 8 des 2020

El XSD és un llenguatge d'esquema utilitzat per descriure l'estructura i les restriccions dels continguts dels documents XML d'una forma molt precisa, més enllà de les normes sintàctiques imposades pel mateix llenguatge XML. S'aconsegueix així, una percepció del tipus de document amb un alt nivell d'abstracció.


Plantilla

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">


<xs:element name="titol" type="xs:string"/>
<xs:attribute name="nom" type="xs:string"/>


<xs:element name="llibre">
<xs:complexType>
<xs:sequence>
<xs:element ref="titol" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="nom"/>
</xs:complexType>
</xs:element>

</xs:schema>

Capçalera

Capçalera XML

<?xml version="1.0" encoding="UTF-8"?> (Declaració XML)
<marcadores xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" (Declaració espai de noms)
xsi:noNamespaceSchemaLocation="marcadores.xsd"> (indica que l’arxiu xsd está a la mateixa carpeta que el XML)

Capçalera XSD

<<?xml version="1.0" encoding="UTF-8"?> (Declaració XML)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> (Declaració espai de noms)

Components Basics

xs:element

name:

Indica el nom de l'element. Obligatori, si l'element és l'arrel, és <xs:schema>

ref:

Indica que la declareció de l'element es troba en algún lloc de l'esquema. ( No es pot fer servir si l'element pare és <xs:schema>. No pot aparèixer amb name.)

type:

Indica el tipus de dada que emmagatzemará l'element. (Nomès pot anar amb name.)

default:

Valor que apareixerà per defecte. (Només es pot fer servir amb dades de tipus text.)

minOccurs:

Indica el nombre mínim de vegades que ha d'apatèixer l'element. (No es pot fer servir si l'element pare és <xs:schema>. Va desde 0 fins il·limitat (unbounded). Per defecte 1.)

maxOccurs:

Indica el nombre màxim de vegades que ha d'aparèixer l'element. (No es pot fer servir si l'element pare és <xs:schema>. Va desde 0 fins il·limitat (unbounded). Per defecte 1.)

xs:attribute

name:

Indica el nom de l'atribut. Obligatori.

ref:

Indica que la declareció de l'atribut es troba en algún lloc de l'esquema. ( No es pot aparèixer amb name.)

type:

Indica el tipus de dada que emmagatzemará l'atribut. ( Obligatori. Nomès pot aparèixer amb name.)

use:

Indica si l'existència de l'atribut és opcional (optional) o obligatòria (required). ( Opcional. Per defecte opcional.)

default:

Valor que apareixerà per defecte. ( Opcional. Només es pot fer servir amb dades tipus text.)

fixed:

Valor obligatòri, només pot contenir aquest valor o cap. ( Opcional. Només es pot fer servir amb dades de tipus text.)

XSD Restriccions

Tipus

Tipus xsd.gif

Llista

<xs:simpleType name="rGenere">
<xs:restriction base="xs:string">
<xs:enumeration value="comedia"/>
<xs:enumeration value="acció"/>
</xs:restriction>
</xs:simpleType>

Digits Màxims

<xs:simpleType name="rIsbn">
<xs:restriction base="xs:integer">
<xs:totalDigits value="13"/>
</xs:restriction>
</xs:simpleType>

Decimals Màxims

<xs:simpleType name="rPreu">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>

Valor minim i màxim

<xs:simpleType name="rEdat">
<xs:restriction base="xs:integer">
<xs:minInclusive value="18"/>
<xs:maxInclusive value="150"/>
</xs:restriction>
</xs:simpleType>

Patró d'un string

<xs:simpleType name="rDni">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{8}[A-Z]"/>
</xs:restriction>
</xs:simpleType>

Patró Numèric

<xs:simpleType name="rTelefon">
<xs:restriction base="xs:integer">
<xs:pattern value="[6-9][0-9]{8}"/>
</xs:restriction>
</xs:simpleType>