PHP - PHP y XML

 
Vista:

PHP y XML

Publicado por marco (1 intervención) el 29/05/2016 16:53:46
Saludos!
A ver si alguien me pudiera ayudar. El caso es que tengo un archivo XMLSchema y necesito hacer instancias en php que validadas con este xmlschema con la extensión dom. Se trata de figuras geométricas que cada una tiene sus propios atributos. El XMLschema define un repositorio de imágenes y cada imagen debe contener una o más figuras geométricas. Bien yo he creado un formulario para en html para cada figura para introducir los datos y sé recoger los datos con php, crear la figura, etc. El problema es que no se como crear la imagen para añadirle 3 o 4 figuras por ejemplo para luego unir la imagen esta al árbol dom. Me explico:
abro el primer html y doy a crear una nueva imagen, me abre un formulario, elijo figura (circulo, rectángulo, elipse...) le meto atributos y acepto esta figura se debería añadir a una imagen y poder meter ahora otra figura igual o distinta, cuando ya no quiera meter más doy a aceptar y se me une la imagen al árbol dom, por último valido con el xml schema un repositorio de, por ejemplo, 5 imágenes. Esa es la idea. Os envío el documento xmlschema y uno de los formularios para que veáis por donde van los tiros a ver si alguien me puede ayudar.
El xml schema:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?xml version="1.0" encoding="iso-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
 
	<xs:simpleType name="Color">
		<xs:restriction base="xs:token">
			<xs:enumeration value="white"/>
			<xs:enumeration value="black"/>
			<xs:enumeration value="red"/>
			<xs:enumeration value="yellow"/>
			<xs:enumeration value="blue"/>
			<xs:enumeration value="purple"/>
			<xs:enumeration value="orange"/>
			<xs:enumeration value="green"/>
		</xs:restriction>
	</xs:simpleType>
 
	<xs:simpleType name="tipoPar">
	   <xs:restriction base="xs:token">
	      <xs:pattern value="(0|[1-9]+[0-9]*),(0|[1-9]+[0-9]*)"/>
	      </xs:restriction>
	   </xs:simpleType>
 
	<xs:simpleType name="listaPuntos">
	   <xs:list itemType="tipoPar"/>
	   </xs:simpleType>
 
	<xs:simpleType name="secuenciaPuntos">
	   <xs:restriction base="listaPuntos">
	      <xs:minLength value="3"/>
	      </xs:restriction>
	   </xs:simpleType>
 
	<xs:simpleType name="tipoPorcentaje">
	   <xs:restriction base="xs:decimal">
	      <xs:minInclusive value="0.0"/>
	      <xs:maxInclusive value="1.0"/>
	      </xs:restriction>
	   </xs:simpleType>
 
	<xs:attribute name="relleno" type="Color"/>
	<xs:attribute name="borde" type="xs:boolean"/>
	<xs:attribute name="opacidad" type="tipoPorcentaje"/>
   	<xs:attribute name="centroX" type="xs:integer"/>
	<xs:attribute name="centroY" type="xs:integer"/>
 
	<xs:element name="RECTANGULO">
		<xs:complexType>
			<xs:attribute name="posicionX" type="xs:integer"/>
			<xs:attribute name="posicionY" type="xs:integer"/>
			<xs:attribute name="ancho" type="xs:integer"/>
			<xs:attribute name="alto" type="xs:integer"/>
			<xs:attribute ref="relleno"/>
			<xs:attribute ref="borde"/>
			<xs:attribute ref="opacidad"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="CIRCULO">
		<xs:complexType>
		   <xs:attribute ref="centroX"/>
		   <xs:attribute ref="centroY"/>
			<xs:attribute name="radio" type="xs:decimal"/>
			<xs:attribute ref="relleno"/>
			<xs:attribute ref="borde"/>
			<xs:attribute ref="opacidad"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="ELIPSE">
		<xs:complexType>
			<xs:attribute ref="centroX"/>
			<xs:attribute ref="centroY"/>
			<xs:attribute name="radioX" type="xs:decimal"/>
			<xs:attribute name="radioY" type="xs:decimal"/>
			<xs:attribute ref="relleno"/>
			<xs:attribute ref="borde"/>
			<xs:attribute ref="opacidad"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="LINEA">
		<xs:complexType>
			<xs:attribute name="puntoInicialX" type="xs:integer"/>
			<xs:attribute name="puntoInicialY" type="xs:integer"/>
			<xs:attribute name="puntoFinalX" type="xs:integer"/>
			<xs:attribute name="puntoFinalY" type="xs:integer"/>
			<xs:attribute name="color" type="Color"/>
			<xs:attribute name="grosor" type="xs:decimal"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="POLIGONO">
		<xs:complexType>
			<xs:attribute name="Secuencia_Puntos" type="secuenciaPuntos"/>
			<xs:attribute ref="relleno"/>
			<xs:attribute ref="borde"/>
			<xs:attribute ref="opacidad"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="LINEA_POLIGONAL">
		<xs:complexType>
			<xs:attribute name="Secuencia_Puntos" type="secuenciaPuntos"/>
			<xs:attribute name="color" type="Color"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="FIGURA">
		<xs:complexType>
			<xs:choice>
				<xs:element ref="RECTANGULO"/>
				<xs:element ref="CIRCULO"/>
				<xs:element ref="ELIPSE"/>
				<xs:element ref="LINEA"/>
				<xs:element ref="POLIGONO"/>
				<xs:element ref="LINEA_POLIGONAL"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="IMAGEN">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" minOccurs="1" ref="FIGURA"/>
			</xs:sequence>
			<xs:attribute name="IDENTIFICADOR" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
 
	<xs:element name="REPOSITORIO">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" minOccurs="1" ref="IMAGEN"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

El código html del formulario del rectángulo, por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<html>
<head>
<title>Formulario para generar documentos XML</title>
</head>
<body background="fondo.jpg">
<center><h1><font face="monaco" color="purple">Formulario para generar documentos XML</font></h1></center>
<form name="formulario" method="post" action="eleccion.php">
<center><font face="monaco" size=4>Elija una figura:</font><br>
<select name="Figura">
<option value="rectangulo" selected="selected">Rectangulo</option>
<option value="circulo">Circulo</option>
<option value="elipse">Elipse</option>
<option value="linea">Linea</option>
<option value="poligono">Poligono</option>
<option value="lineapoligonal">Linea Poligonal</option>
</select>
<input type="submit" value="Seleccionar">
</center>
</form>
<center>
<font face="monaco" size=4 color="red">Rectangulo</font>
<form name="formRectangulo" method="post" action="documento.php">
<font face="monaco" size=2>Figura Elegida: </font><input name="figura" value="rectangulo" readonly>
<br><br>
<font face="monaco" size=2>Posicion X: </font><input type="number" name="posicionx" min="1" value="1">
<font face="monaco" size=2>Posicion Y: </font><input type="number" name="posiciony" min="1" value="1">
<br><br><font face="monaco" size=2>Ancho:  </font><input type="number" name="ancho" min="1" value="1">
<font face="monaco" size=2>Alto: </font><input type="number" name="alto" min="1" value="1">
<br><br><font face="monaco" size=2>Relleno: </font>
<select name="color">
<option value="white">Blanco</option>
<option value="black">Negro</option>
<option value="red">Rojo</option>
<option value="yellow">Amarillo</option>
<option value="blue">Azul</option>
<option value="purple">Morado</option>
<option value="orange">Naranja</option>
<option value="green">Verde</option>
</select>
<br><br><font face="monaco" size=2>Borde: </font>
<select name="borde">
<option value="true">True</option>
<option value="false">False</option>
</select>
<br><br><font face="monaco" size=2>Opacidad: <input type="number" name="opacidad" min="1" max="100" value="100">%</font>
<br><br>
<input type="submit" name="aceptar" value="Anadir Figura">
</form>
</center>
<div style="text-align: center;"><font face="monaco" size=1>Marco Antonio Garzon Palos</font></div>
</body>
</html>
La idea es conseguir un archivo xml que esté validado por el schema.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder