<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Ferramentas%2C_validaci%C3%B3ns_de_Schemas_e_exemplo_completo</id>
	<title>Ferramentas, validacións de Schemas e exemplo completo - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Ferramentas%2C_validaci%C3%B3ns_de_Schemas_e_exemplo_completo"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Ferramentas,_validaci%C3%B3ns_de_Schemas_e_exemplo_completo&amp;action=history"/>
	<updated>2026-10-26T14:29:05Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Ferramentas,_validaci%C3%B3ns_de_Schemas_e_exemplo_completo&amp;diff=20363&amp;oldid=prev</id>
		<title>Veiga en 11:17 19 ene 2011</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Ferramentas,_validaci%C3%B3ns_de_Schemas_e_exemplo_completo&amp;diff=20363&amp;oldid=prev"/>
		<updated>2011-01-19T11:17:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Ferramentas ==&lt;br /&gt;
Para poder facer schemas usaremos as mesmas ferramentas que usabamos en XML.&lt;br /&gt;
&lt;br /&gt;
Ver ferramentas empregadas en XML : [[Utilización de ferramentas]]&lt;br /&gt;
&lt;br /&gt;
== Validación de schemas ==&lt;br /&gt;
&lt;br /&gt;
Para validar un schema poderemos facelo dende:&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/2001/03/webdata/xsv http://www.w3.org/2001/03/webdata/xsv]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exemplo completo de creación dun arquivo .XSD partindo dun arquivo .XML==&lt;br /&gt;
&lt;br /&gt;
Nesta sección imos a crear un arquivo .xsd partindo do arquivo .xml empregando 3 formas diferentes de facelo.&lt;br /&gt;
&lt;br /&gt;
Arquivo .xml orixinal &amp;quot;shiporder.xml&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;shiporder orderid=&amp;quot;889923&amp;quot;&lt;br /&gt;
xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
xsi:noNamespaceSchemaLocation=&amp;quot;shiporder.xsd&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;orderperson&amp;gt;John Smith&amp;lt;/orderperson&amp;gt;&lt;br /&gt;
  &amp;lt;shipto&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Ola Nordmann&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;address&amp;gt;Langgt 23&amp;lt;/address&amp;gt;&lt;br /&gt;
    &amp;lt;city&amp;gt;4000 Stavanger&amp;lt;/city&amp;gt;&lt;br /&gt;
    &amp;lt;country&amp;gt;Norway&amp;lt;/country&amp;gt;&lt;br /&gt;
  &amp;lt;/shipto&amp;gt;&lt;br /&gt;
  &amp;lt;item&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Empire Burlesque&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;note&amp;gt;Special Edition&amp;lt;/note&amp;gt;&lt;br /&gt;
    &amp;lt;quantity&amp;gt;1&amp;lt;/quantity&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;10.90&amp;lt;/price&amp;gt;&lt;br /&gt;
  &amp;lt;/item&amp;gt;&lt;br /&gt;
  &amp;lt;item&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Hide your heart&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;quantity&amp;gt;1&amp;lt;/quantity&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;9.90&amp;lt;/price&amp;gt;&lt;br /&gt;
  &amp;lt;/item&amp;gt;&lt;br /&gt;
&amp;lt;/shiporder&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O documento XML consiste nun elemento raiz “shiporder”, que contén un atributo requerido chamado “orderid”. O elemento “shiporder” contén tres tipos diferentes de fillos: “orderperson”, “shipto” e “item”. O elemento “item” aparece dúas veces, e contén un “título” e un elemento opcional “note”, unha “cantidade” e un elemento “prezo”.&lt;br /&gt;
&lt;br /&gt;
A liña superior xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance” dille ó procesador XML que este documento deberá estar validado contra un schema. A liña “xsi:noNamespaceSchemaLocation=&amp;quot;shiporder.xsd&amp;quot;” especifica onde reside o schema (está no mesmo cartafol que “shiporder.xml”).&lt;br /&gt;
&lt;br /&gt;
=== Método 1: Forma sinxela de creación dun Schema XSD ===&lt;br /&gt;
&lt;br /&gt;
Agora queremos crear un Schema XSD para poder validar o documento anterior XML.&lt;br /&gt;
&lt;br /&gt;
Comenzaremos facendo un novo arquivo chamado &amp;quot;shiporder.xsd&amp;quot;. Para crear o schema simplemente seguiremos a estructura no documento XML e definiremos cada un dos elementos que imos atopando. . Comezaremos coa declaración standard seguida do elemento &amp;#039;&amp;#039;&amp;#039;xs:schema&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&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;
...&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No schema superior estamos empregando o namespace standard (xs), e a URI asociada con este namespace é a definición da linguaxe do Schema, que ten o valor standard http://www.w3.org/2001/XMLSchema.&lt;br /&gt;
&lt;br /&gt;
A continuación, temos que definir o elemento &amp;quot;shiporder&amp;quot;. Este elemento ten un atributo e contén outros elementos, por tanto considerámolo como tipo complexo. Os elementos fillos de &amp;quot;shiporder&amp;quot; están rodeados por un elemento xs:sequence que define a orde da secuencia dos sub elementos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;shiporder&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;
      ...&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;
&lt;br /&gt;
A continuación temos que definir o elemento “orderperson” como un tipo simple (xa que non  contén ningún atributo ou outros elementos). O tipo (xs:string) está prefixado no espazo de nomes asociado có Schema XML que indica un schema predefinido de tipo de datos.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;orderperson&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación temos que definir dous elementos que son de tipo complexo: “shipto” e “item”. Comenzamos definindo o elemento “shipto”:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;shipto&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;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;address&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;city&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;country&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;
&lt;br /&gt;
Cós schemas podemos definir o número posible de ocorrencias para un elemento empregando os atributos maxOccurs e minOccurs. maxOccurs especifica o número máximo de ocorrencias para un elemento e minOccurs especifica o número mínimo de ocorrencias para un elemento. O valor por defecto para maxOccurs e minOccurs é 1.&lt;br /&gt;
&lt;br /&gt;
Agora podemos definir o elemento “item”. Este elemento pode aparecer moitas veces dentro de “shiporder”. Isto especificase axustando o atributo maxOccurs para o elemento “item” ó valor “unbounded”, que significa que pode aparecer tantas veces o elemento “item” como desexe o autor. O elemento “note” é opcional. Isto indícase axustando o atributo minOccurs a cero:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;item&amp;quot; maxOccurs=&amp;quot;unbounded&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;title&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;note&amp;quot; type=&amp;quot;xs:string&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;quantity&amp;quot; type=&amp;quot;xs:positiveInteger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;price&amp;quot; type=&amp;quot;xs:decimal&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;
&lt;br /&gt;
Agora podemos declarar o atributo do elemento “shiporder”.  Xa que é un atributo obrigatorio deberemos empregar use=”required”.&lt;br /&gt;
&lt;br /&gt;
Nota: As declaracións de atributos sempre irán ó final:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:attribute name=&amp;quot;orderid&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aquí temos o listado completo do schema chamado &amp;quot;shiporder.xsd&amp;quot;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&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;
&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;shiporder&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;orderperson&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element name=&amp;quot;shipto&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;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:element name=&amp;quot;address&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:element name=&amp;quot;city&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:element name=&amp;quot;country&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:element name=&amp;quot;item&amp;quot; maxOccurs=&amp;quot;unbounded&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;title&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:element name=&amp;quot;note&amp;quot; type=&amp;quot;xs:string&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:element name=&amp;quot;quantity&amp;quot; type=&amp;quot;xs:positiveInteger&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:element name=&amp;quot;price&amp;quot; type=&amp;quot;xs:decimal&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:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:attribute name=&amp;quot;orderid&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&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;
&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método 2: División do Schema na creación do XSD ===&lt;br /&gt;
&lt;br /&gt;
O método anterior de deseño é moi simple, pero pode ser dificil de ler e manter cando son documentos complexos.&lt;br /&gt;
&lt;br /&gt;
O seguinte método de deseño está baseado na definición de todos os elementos e atributos primeiro, e a continuación referencialos usando o atributo &amp;#039;&amp;#039;&amp;#039;ref&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Aquí temos o novo arquivo de deseño (&amp;quot;shiporder.xsd&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&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;
&lt;br /&gt;
&amp;lt;!-- definition of simple elements --&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;orderperson&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;name&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;address&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;city&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;country&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;title&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;note&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;quantity&amp;quot; type=&amp;quot;xs:positiveInteger&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;price&amp;quot; type=&amp;quot;xs:decimal&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- definition of attributes --&amp;gt;&lt;br /&gt;
&amp;lt;xs:attribute name=&amp;quot;orderid&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- definition of complex elements --&amp;gt;&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;shipto&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 ref=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;address&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;city&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;country&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;
&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;item&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 ref=&amp;quot;title&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;note&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;quantity&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;price&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;
&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;shiporder&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 ref=&amp;quot;orderperson&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;shipto&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;xs:element ref=&amp;quot;item&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:attribute ref=&amp;quot;orderid&amp;quot; use=&amp;quot;required&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;
&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Método 3: Empregando nomes para os tipos de datos do Schema XSD ===&lt;br /&gt;
&lt;br /&gt;
O terceiro método de deseño define clases ou tipos, que permiten a reutilización das definicións de elementos. Isto faise nomeando os elementos de tipos simples e complexos e a continuación referenciándoos a través do atributo type do elemento.&lt;br /&gt;
&lt;br /&gt;
Aquí temos a terceira versión do arquivo de schema (&amp;quot;shiporder.xsd&amp;quot;):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&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;
&lt;br /&gt;
&amp;lt;xs:simpleType name=&amp;quot;stringtype&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xs:simpleType name=&amp;quot;inttype&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:restriction base=&amp;quot;xs:positiveInteger&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xs:simpleType name=&amp;quot;dectype&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:restriction base=&amp;quot;xs:decimal&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xs:simpleType name=&amp;quot;orderidtype&amp;quot;&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;[0-9]{6}&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;
&lt;br /&gt;
&amp;lt;xs:complexType name=&amp;quot;shiptotype&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;name&amp;quot; type=&amp;quot;stringtype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;address&amp;quot; type=&amp;quot;stringtype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;city&amp;quot; type=&amp;quot;stringtype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;country&amp;quot; type=&amp;quot;stringtype&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;
&lt;br /&gt;
&amp;lt;xs:complexType name=&amp;quot;itemtype&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;title&amp;quot; type=&amp;quot;stringtype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;note&amp;quot; type=&amp;quot;stringtype&amp;quot; minOccurs=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;quantity&amp;quot; type=&amp;quot;inttype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;price&amp;quot; type=&amp;quot;dectype&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;
&lt;br /&gt;
&amp;lt;xs:complexType name=&amp;quot;shipordertype&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;orderperson&amp;quot; type=&amp;quot;stringtype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;shipto&amp;quot; type=&amp;quot;shiptotype&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;xs:element name=&amp;quot;item&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; type=&amp;quot;itemtype&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
  &amp;lt;xs:attribute name=&amp;quot;orderid&amp;quot; type=&amp;quot;orderidtype&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xs:element name=&amp;quot;shiporder&amp;quot; type=&amp;quot;shipordertype&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A restrición elemento indica que o tipo de datos ven derivado do namespace do W3C XML Schema. Polo tanto, o seguinte fragmento quere dicir que o valor do elemento ou atributo debe ser unha cadea:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:restriction base=&amp;quot;xs:string&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O elemento restriction é usado moitas veces para aplicar restricións ós elementos. Mira as seguintes liñas do schema anterior:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:simpleType name=&amp;quot;orderidtype&amp;quot;&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;[0-9]{6}&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;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto indica que o valor do elemento ou atributo debe ser unha cadea, debe ter exactamente 6 caracteres nunha fila e eses caracteres deben ser un número entre 0 e 9.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Codigo fonte do exemplo: [http://www.w3schools.com/schema/schema_example.asp www.w3schools.com]&lt;/div&gt;</summary>
		<author><name>Veiga</name></author>
	</entry>
</feed>