DerechoDePeticionXSD

De DerechoDeInternet, la enciclopedia libre.

Versión "base" de un esquema XML (http://en.wikipedia.org/wiki/Schema) para el caso práctico DerechoDePeticionXML.

Para futuras modificaciones habría que separar la deficinión de tipos básicos para permitir su reutilización, y definir más concretos los tipos.

Tanto las etiquetas <hecho> como <hechoalimentado> podrían ser las misma, indicando de algún modo (atributo?) que se trata de un hecho alimentado o de un hecho que puede alimentar a otro proceso... Al hilo de este razonamiento en la plantilla existen datos que podrían se públicos y otros de caracter personal. Para poder preservar la privacidad de los usuarios se tendría que marcar que campos no pueden alimentar otros procesos bajo ningún concepto. El esquema sería un buen sitio.

Un ejemplo de XML que cumple este esquema se puede encontrar en EjemploDerechoDePeticionXML.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="actor">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="nombre"/>
				<xs:element ref="apellidos"/>
				<xs:element ref="profesion"/>
				<xs:element ref="direccion"/>
				<xs:element ref="nif"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="anexo" type="xs:string"/>
	<xs:element name="apellidos" type="xs:string"/>
	<xs:element name="calle" type="xs:string"/>
	<xs:element name="cargo" type="xs:string"/>
	<xs:element name="codigoPostal" >
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:pattern value="\d{5}"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="cuerpo">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="hecho" maxOccurs="unbounded"/>
				<xs:element ref="hechoAlimentado" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="destinatario">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="cargo"/>
				<xs:element ref="organismo"/>
				<xs:element ref="direccion"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="direccion">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="calle"/>
				<xs:element ref="codigoPostal"/>
				<xs:element ref="poblacion"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="encabezamiento">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="destinatario"/>
				<xs:element ref="actor"/>
				<xs:element ref="formulaInstancia"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="escrito">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="encabezamiento"/>
				<xs:element ref="cuerpo"/>
				<xs:element ref="final"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="fecha" type="xs:string"/>
	<xs:element name="final">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="para"/>
				<xs:element ref="petitum"/>
				<xs:element ref="formulaDespido"/>
				<xs:element ref="firma"/>
				<xs:element ref="anexo"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="firma" type="xs:string"/>
	<xs:element name="formulaDespido">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="para"/>
				<xs:element ref="lugarFecha"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="formulaInstancia" type="xs:string"/>
	<xs:element name="hecho" type="xs:string"/>
	<xs:element name="hechoAlimentado" type="xs:string"/>
	<xs:element name="lugar" type="xs:string"/>
	<xs:element name="lugarFecha">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="lugar"/>
				<xs:element ref="fecha"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="nif">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:pattern value="\d{8}(-)?([a-z]|[A-Z])"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="nombre" type="xs:string"/>
	<xs:element name="organismo" type="xs:string"/>
	<xs:element name="para" type="xs:string"/>
	<xs:element name="petitum" type="xs:string"/>
	<xs:element name="poblacion" type="xs:string"/>
	<xs:element name="profesion" type="xs:string"/>
</xs:schema>
Personal tools