Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2012, 14:22
CraYzoR
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Validación documento XML con DTD

Buenas, tengo una duda sobre las validaciones de los documentos XML: Cuando un documento validado con un DTD no es válido, ¿no debería avisarme el navegador, cuando cargo ese XML al igual que lo hace cuando tiene errores de sintaxis(mal formado)?

Porque si es así, poniendo como ejemplo algo parecido a lo que estoy haciendo:

Documento previsiones.dtd
Código:
<?xml encoding="UTF-8"?>
<!ELEMENT previsiones (provincia,dia+)>
<!ELEMENT provincia (#PCDATA)>
<!ELEMENT dia (hora+,humedad)>
<!ATTLIST dia diaa (hoy|manana) #REQUIRED>
<!ELEMENT hora (tiempo,viento)>
<!ATTLIST hora intervalo NMTOKEN #REQUIRED>
<!ELEMENT humedad (#PCDATA)>
<!ELEMENT ttiempo (#PCDATA)>
<!ELEMENT viento (#PCDATA)>
Documento XML mal formado

Código:
<!DOCTYPE previsiones SYSTEM "previsiones.dtd">
<previsiones>
	<provincia>Barcelona</provincia>
	<dia diaa="cualquiera">
		<hora intervalo="0-12">
			<tiempo>Nublado</tiempo>
			<viento>Norte 10km/h</viento>
		</hora>
		<hora>
			<tiempo>Soleado</tiempo>
			<viento>Sin viento</viento>
		</hora>
		<humedad>64</humedad>
	</dia>
	<dia>
		<hora intervalo="0-12">
			<tiempo>Nublado</tiempo>
			<viento>Norte 10km/h</viento>
		</hora>
		<hora intervalo="12-24">
			<tiempo>Soleado</tiempo>
		</hora>
		<humedad>75</humedad>
	</dia>
</previsiones>
Viendo el XML hay varias 'mal formaciones', por ejemplo:

El primer TAG dia tiene el atributo diaa con un valor distinto a 'hoy' o 'manana'.

El segundo TAG dia no tiene el atributo diaa siendo este requerido

La segunda hora del segundo dia no contiene el TAG viento.

En fin, todo eso, entre otras cosas más, sin embargo ningún navegador se queja de que no sea válido y me gustaría saber, que si el navegador no me informara de ello, ¿como se si un documento XML es válido o no?, y si no que hago mal?

Un saludo!