Buenas noches,
Es la primera vez que escribo en estos foros y la verdad que me encuentro en una situación de aprieto ya que tengo que entregar un ejercicio antes de que acabe la semana.
El enunciado es el siguiente:
a)Definir un esquema (fichas_con_enumerado.xsd) con la informacion de fichas siguiente:
- una serie de 0,1 o más elementos ficha, donde cada ficha tiene un nombre, un apellido1 y un apellido2, de 0 a 2 direcciones de e-mail y de 0 a 3 direcciones, donde la direccion esta formada por Calle, piso(opcional), letra(opcional), codigo_postal, ciudad, pais.
El codigo postal puede ir desde 1000 .. 9999. El tipo email debe solo aceptar direcciones de correo validas.
Además, cada ficha tiene dos atributos: categoría (obligatorio) y zona (opcional).
El tipo_categoria puede tomar sólo alguno de los siguientes valores: ‘empresa’, ‘particular’, o ‘agente_comercial’.
El tipo_zona puede tomar sólo alguno de los siguientes valores: ‘Malagueta’, ‘Centro’, ‘Parque del Oeste’ o ‘Ciudad Jardín’.
Empece a hacerlo pero me salia error y ademas de que no sabía como seguir. Os pido que por favor me podaís echar un cable para terminar de hacer el ejercicio.
Esto es lo que hice:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="ficha_con_enumerado">
<xs:complexType>
<xs:sequence>
<xs:element ref="persona" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="persona">
<xs:complexType>
<xs:sequence>
<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellido1" type="xs:string"/>
<xs:element name="apellido2" type="xs:string"/>
<xs:element name="direccion_email" type="xs:string"/>
</xs:sequence>
<xs:attribute name="categoria" type="tipo_categoria" use="required">
<xs:attribute name="zona" type="tipo_zona" use="optional">
</xs:complexType>
</xs:element">
<xs:simpleType name="tipo_categoria">
<xs:restriction base="xs:string">
<xs:enumeration value="empresa"/>
<xs:enumeration value="particular"/>
<xs:enumeration value="agente_comercial"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="tipo_zona">
<xs:restriction base="xs:string">
<xs:enumeration value="Malagueta"/>
<xs:enumeration value="Centro"/>
<xs:enumeration value="Parque del Oeste"/>
<xs:enumeration value="Ciudad Jardin"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Solo empece hacer el xsd aun me faltaría por hacer el xml pero claro antes tengo que resolver la duda.
Gracias