<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.tocateules.com/index.php?action=history&amp;feed=atom&amp;title=XML_Schema</id>
	<title>XML Schema - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.tocateules.com/index.php?action=history&amp;feed=atom&amp;title=XML_Schema"/>
	<link rel="alternate" type="text/html" href="http://wiki.tocateules.com/index.php?title=XML_Schema&amp;action=history"/>
	<updated>2026-06-12T08:11:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>http://wiki.tocateules.com/index.php?title=XML_Schema&amp;diff=193&amp;oldid=prev</id>
		<title>Jaume at 14:21, 22 March 2024</title>
		<link rel="alternate" type="text/html" href="http://wiki.tocateules.com/index.php?title=XML_Schema&amp;diff=193&amp;oldid=prev"/>
		<updated>2024-03-22T14:21:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:21, 22 March 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot; &gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Procesables igual que els documents XML&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Procesables igual que els documents XML&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Qué &lt;/del&gt;hi ha a un esquema XML=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Què &lt;/ins&gt;hi ha a un esquema XML=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Un esquema XML defineix la estructura válida per un tipus de document XML, es a dir defineix:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Un esquema XML defineix la estructura válida per un tipus de document XML, es a dir defineix:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Els elements que poden aparèixer al document.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Els elements que poden aparèixer al document.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jaume</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.tocateules.com/index.php?title=XML_Schema&amp;diff=192&amp;oldid=prev</id>
		<title>Jaume: Created page with &quot;Són una sintàxi alternativa per a les DTDs. Utilitzen la sintàxi pròpia de XML Avantatges: *Fàcils d'aprendre  *Suporten tipus de dades: numérics, dates... *Procesables...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.tocateules.com/index.php?title=XML_Schema&amp;diff=192&amp;oldid=prev"/>
		<updated>2024-03-22T14:20:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Són una sintàxi alternativa per a les DTDs. Utilitzen la sintàxi pròpia de XML Avantatges: *Fàcils d&amp;#039;aprendre  *Suporten tipus de dades: numérics, dates... *Procesables...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Són una sintàxi alternativa per a les DTDs.&lt;br /&gt;
Utilitzen la sintàxi pròpia de XML&lt;br /&gt;
Avantatges:&lt;br /&gt;
*Fàcils d'aprendre &lt;br /&gt;
*Suporten tipus de dades: numérics, dates...&lt;br /&gt;
*Procesables igual que els documents XML&lt;br /&gt;
&lt;br /&gt;
=Qué hi ha a un esquema XML=&lt;br /&gt;
Un esquema XML defineix la estructura válida per un tipus de document XML, es a dir defineix:&lt;br /&gt;
*Els elements que poden aparèixer al document.&lt;br /&gt;
*Els atributs que es poden utilitzar juntament a cada element.&lt;br /&gt;
*Com es poden niuar els elements (Pares i fills)&lt;br /&gt;
*L'ordre en el que apareixen els elements fills d'un mateix pare.&lt;br /&gt;
*El nombre permès dels elements fills&lt;br /&gt;
*Si un element pot ser buit o no.&lt;br /&gt;
*Tipus de dades per a elements i atributs.&lt;br /&gt;
*Valors per defecte i fixos per a elements i atributs.&lt;br /&gt;
==Altres avantatges dels esquemes==&lt;br /&gt;
*Més precisió que en les DTD en la definició de tipus de dades mitjançant formats i restriccions. &lt;br /&gt;
*Per exemple, en una data:&lt;br /&gt;
&amp;lt;source language=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;date type=&amp;quot;date&amp;quot;&amp;gt;1999-03-11&amp;lt;/date&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Els esquemes es defineixen com a documents XML. En un document a part amb l'extensió .xsd.&lt;br /&gt;
*Els documents XML es basen en aquest esquema, incluirem una referència a l'arxiu .xsd&lt;br /&gt;
==Com associar esquemes a documents XML==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;note xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:noNamespaceSchemaLocation=&amp;quot;note.xsd&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;to&amp;gt;Tove&amp;lt;/to&amp;gt; &lt;br /&gt;
&amp;lt;from&amp;gt;Jani&amp;lt;/from&amp;gt; &lt;br /&gt;
&amp;lt;heading&amp;gt;Reminder&amp;lt;/heading&amp;gt; &lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
Don't forget me this weekend!&lt;br /&gt;
&amp;lt;/body&amp;gt; &lt;br /&gt;
&amp;lt;/note&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exemple esquema W3C==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt; &lt;br /&gt;
&amp;lt;xs:schema xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema”&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;note&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;xs:sequence&amp;gt; &lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;to&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;from&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;heading&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;body&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;/xs:sequence&amp;gt; &lt;br /&gt;
&amp;lt;/xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=Esquemes XML – elements schema=&lt;br /&gt;
Els elements utilitzats en la creació d'un esquema “procedeixen” de l'espai de noms: &lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
http://www.w3.org/2001/XMLSchema&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
L'element Schema es l'element arrel del document que defineix l'esquema:&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Esquemes XML – elements “simples”==&lt;br /&gt;
Un element simple és un element que només pot contenir text (qualsevol tipus de dada), però no altres elements ni atributs.&lt;br /&gt;
Per a definir un element simple utilitzem la sintaxis:&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;xxx&amp;quot; type=&amp;quot;yyy&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Exemples==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=“apellido” type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=“edad&amp;quot; type=&amp;quot;xs:integer&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;xs:element name=“fecNac&amp;quot; type=&amp;quot;xs:date&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=Esquemes XML – elements “simples”,tipus de dades=&lt;br /&gt;
Els tipus de dades més utilitzats són:&lt;br /&gt;
*xs:string &lt;br /&gt;
*xs:decimal &lt;br /&gt;
*xs:integer &lt;br /&gt;
*xs:boolean &lt;br /&gt;
*xs:date &lt;br /&gt;
*xs:time &lt;br /&gt;
Un element simple pot tenir un valor per defecte I &lt;br /&gt;
un valor “fixe”.&lt;br /&gt;
S'indica mitjançant els atributs default I fixed:&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;color&amp;quot; type=&amp;quot;xs:string&amp;quot; default=&amp;quot;red&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Enumeració==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;car&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:enumeration value=&amp;quot;Audi&amp;quot;/&amp;gt; &lt;br /&gt;
         &amp;lt;xs:enumeration value=&amp;quot;Golf&amp;quot;/&amp;gt; &lt;br /&gt;
         &amp;lt;xs:enumeration value=&amp;quot;BMW&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Pattern string==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;letter&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:pattern value=&amp;quot;[a-z]&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
En aquest exemple, l'element “letter” ha de prendre &lt;br /&gt;
com a valor una lletra minúscula.&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Pattern string==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;initials&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:pattern value=&amp;quot;[a-zA-Z][a-zA-Z][a-zA-Z]&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
En aquest exemple l'element “initials” ha de prendre com a valor 3 lletres majúscules o minúscules.&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Pattern string==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;choice&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:pattern value=&amp;quot;[xyz]&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
En aquest exemple, l'element “choice” ha de prendre com a &lt;br /&gt;
valor una d'aquestes lletres: x, y o z&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Pattern integer==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;prodid&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:integer&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:pattern value=&amp;quot;[0-9][0-9][0-9][0-9][0-9]&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Pattern string==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;letter&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:pattern value=&amp;quot;([a-z])*&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Pattern string==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;password&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:pattern value=&amp;quot;[a-zA-Z0-9]{8}&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
En aquest exemple, el valor del camp “password” ha de ser &lt;br /&gt;
de 8 caràcters.&lt;br /&gt;
&lt;br /&gt;
==Restriccions - Longitud string==&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;password&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:length value=&amp;quot;8&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Els elements length, minLength y maxLength permeten &lt;br /&gt;
indicar el número exacte, mínim i màxim de caràcters que &lt;br /&gt;
pot tenir un valor d'un element.&lt;br /&gt;
==Restriccions - Restriccions per valor==&lt;br /&gt;
Si volem restringir un valor de l'xml, com per exemple que sigui més gran que 5, que sigui més petit que 2, etc... Podem utilitzar els element minInclusive, maxInclusive, minExclusive i maxExclusive.&lt;br /&gt;
Per exemple, per declarar que volem que un valor tingui un valor superior o igual a 4, podriem especificar-ho:&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;numRodes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:integer&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:minInclusive value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
So volguéssim especificar que el valor sigui més gran que 4 i mes petit o igual a 8:&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;numRodes&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;xs:simpleType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:restriction base=&amp;quot;xs:integer&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;xs:minExclusive value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;xs:maxInclusive value=&amp;quot;8&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:restriction&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Declarar elements complexos=&lt;br /&gt;
Els elements complexos són aquells que dins seu contenen altres elements simples o complexos.&amp;lt;br /&amp;gt;&lt;br /&gt;
Donat un xml com per exemple:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;employee&amp;gt;&lt;br /&gt;
  &amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
  &amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;/employee&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Els elements complexos els podem declarar de dues maneres diferents:&lt;br /&gt;
* '''Dins del mateix element'''&lt;br /&gt;
En el moment de definir l'element complex, dins seu ja definim l'estructura del tipus complex.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;firstname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;lastname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* '''Creant un tipus personalitzat'''&lt;br /&gt;
Podem definir un tipus complex personalitzat, i assignar a l'element que volem definir aquest tipus personalitzat que hem creat.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;employee&amp;quot; type=&amp;quot;personinfo&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xs:complexType name=&amp;quot;personinfo&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;firstname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;lastname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
&amp;lt;/xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
D'aquesta segona manera podem &amp;quot;reaprofitar&amp;quot; el tipus personalitzat que hem creat en diversos elements del nostre xml, de manera que el codi ens quedarà més curt i ben organitzat. Serà, per tant, la manera en la que declararem els tipus complexos en els nostres exercicis.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;employee&amp;quot; type=&amp;quot;personinfo&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;student&amp;quot; type=&amp;quot;personinfo&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;member&amp;quot; type=&amp;quot;personinfo&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xs:complexType name=&amp;quot;personinfo&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;firstname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;lastname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
&amp;lt;/xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=Atributs=&lt;br /&gt;
Els elements que contenen atributs son considerats com elements complexos. Per tant la seva definició serà semblants a la d'un element complex afegint l'etiqueta '''''xs:attribute'''''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Caldrà diferenciar entre tres diferents tipus d'elements complexes amb atributs:&lt;br /&gt;
* '''Element buit'''&lt;br /&gt;
En el següent xml:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;Author&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&lt;br /&gt;
		&amp;lt;FirstName&amp;gt;Mark&amp;lt;/FirstName&amp;gt;&lt;br /&gt;
		&amp;lt;LastName&amp;gt;Twain&amp;lt;/LastName&amp;gt;&lt;br /&gt;
	&amp;lt;/Name&amp;gt;&lt;br /&gt;
	&amp;lt;HomePage URL=&amp;quot;http://www.marktwain.com&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/Author&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
El codi XML Schema que validaria que l'element '''HomePage''' té un atribut ''URL'' seria els següent:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;HomePage&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
	      &amp;lt;xs:attribute name=&amp;quot;URL&amp;quot; type=&amp;quot;xs:anyURI&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* '''Element simple'''&lt;br /&gt;
Si l'element a definir és de tipus simple com el següent:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;Author&amp;gt;&lt;br /&gt;
	&amp;lt;Name Pseudonym=&amp;quot;true&amp;quot; HomePage=&amp;quot;http://www.nathanielhawthorne.com&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;FirstName Full=&amp;quot;false&amp;quot;&amp;gt;Nat&amp;lt;/FirstName&amp;gt;&lt;br /&gt;
		&amp;lt;LastName&amp;gt;Hawthorne&amp;lt;/LastName&amp;gt;&lt;br /&gt;
	&amp;lt;/Name&amp;gt;&lt;br /&gt;
&amp;lt;/Author&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
El codi XML Schema que validaria que l'element ''FirstName'' té un atribut ''Full'' seria:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element name=&amp;quot;FirstName&amp;quot;&amp;gt;&lt;br /&gt;
	        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
			&amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
				&amp;lt;xs:extension base=&amp;quot;xs:string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xs:attribute name=&amp;quot;Full&amp;quot; type=&amp;quot;xs:boolean&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
			&amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
		&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
	&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* '''Element complex'''&lt;br /&gt;
Si l'atribut a validar es troba en un element de tipus complex, com per exemple:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;Author&amp;gt;&lt;br /&gt;
	&amp;lt;Name Pseudonym=&amp;quot;true&amp;quot; HomePage=&amp;quot;http://www.marktwain.com&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;FirstName&amp;gt;Mark&amp;lt;/FirstName&amp;gt;&lt;br /&gt;
		&amp;lt;LastName&amp;gt;Twain&amp;lt;/LastName&amp;gt;&lt;br /&gt;
	&amp;lt;/Name&amp;gt;&lt;br /&gt;
&amp;lt;/Author&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
S'hauria de validar de la següent manera:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
		&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
			&amp;lt;xs:element name=&amp;quot;FirstName&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;xs:element name=&amp;quot;LastName&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
		&amp;lt;xs:attribute name=&amp;quot;Pseudonym&amp;quot; type=&amp;quot;xs:boolean&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xs:attribute name=&amp;quot;HomePage&amp;quot; type=&amp;quot;xs:anyURI&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=Indicadors=&lt;br /&gt;
En els exemples anteriors hem utilitzat l'element  &lt;br /&gt;
xs:sequence com element fill de l'element xs:complexType&lt;br /&gt;
xs:sequence indica que els elements anidats dintre d'ell han d'apareixer en un ordre determinat.&lt;br /&gt;
Altres opcions o indicadors són: xs:all y xs:choice&lt;br /&gt;
==Indicador xs:all==&lt;br /&gt;
L'indicador xs:all indica que els elements que conté poden &lt;br /&gt;
aparèixer en cualsevol ordre però com a màxim una vegada.&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;person&amp;quot;&amp;gt; &lt;br /&gt;
   &amp;lt;xs:complexType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:all&amp;gt; &lt;br /&gt;
         &amp;lt;xs:element name=&amp;quot;firstname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
         &amp;lt;xs:element name=&amp;quot;lastname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:all&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indicador xs:choice==&lt;br /&gt;
L'indicador xs:choice indica que pot aparèixer només un els delements que conté:&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;person&amp;quot;&amp;gt; &lt;br /&gt;
   &amp;lt;xs:complexType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:choice&amp;gt; &lt;br /&gt;
         &amp;lt;xs:element name=&amp;quot;firstname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
         &amp;lt;xs:element name=&amp;quot;lastname&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:choice&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;/xs:element&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==maxOccurs i minOccurs==&lt;br /&gt;
Aquests indidcadors s'utilitzen per a indicar el nombre máxim I mínim de vegades que pot aparèixer un element fill d'un element compelx.&lt;br /&gt;
L'atribut maxOccurs pot prendre el valor “unbounded”, que indica que no existeix cap limit.&lt;br /&gt;
&amp;lt;source language=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;person&amp;quot;&amp;gt; &lt;br /&gt;
   &amp;lt;xs:complexType&amp;gt; &lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt; &lt;br /&gt;
         &amp;lt;xs:element name=&amp;quot;full_name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt; &lt;br /&gt;
         &amp;lt;xs:element name=&amp;quot;child_name&amp;quot; type=&amp;quot;xs:string&amp;quot; maxOccurs=&amp;quot;10&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt; &lt;br /&gt;
   &amp;lt;/xs:complexType&amp;gt; &lt;br /&gt;
&amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaume</name></author>
		
	</entry>
</feed>