Ver la versión completa : [Ayuda] (XML) archivo DTD falla y no se por qué
Molondro
04/11/2014, 13:58
Tengo un archivo XML tal que asi:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE curs SYSTEM "UF1NF1A6_Activitats_DTD_ejercicio2.dtd">
<curs>
<alumnes>
<alumne dni="_200">
<nomalumne></nomalumne>
<cognom></cognom>
</alumne>
<alumne dni="_201">
<nomalumne></nomalumne>
<cognom></cognom>
</alumne>
<alumne dni="_202">
<nomalumne></nomalumne>
<cognom></cognom>
</alumne>
</alumnes>
<cursen>
<cursa dni="_200" codi="_1"/>
<cursa dni="_200" codi="_2"/>
<cursa dni="_200" codi="_3"/>
<cursa dni="_201" codi="_3"/>
<cursa dni="_202" codi="_1"/>
</cursen>
<ufs>
<uf codi="_1">
<nomuf></nomuf>
<hores></hores>
</uf>
<uf codi="_2">
<nomuf></nomuf>
<hores></hores>
</uf>
<uf codi="_3">
<nomuf></nomuf>
<hores></hores>
</uf>
</ufs>
</curs>
Y su DTD:
<!ELEMENT curs (alumnes,cursen,ufs)>
<!ELEMENT alumnes (alumne*)>
<!ELEMENT cursen (cursa*)>
<!ELEMENT ufs (uf*)>
<!ELEMENT alumne (nomalumne,cognom)>
<!ELEMENT cursa EMPTY>
<!ELEMENT uf (nomuf,hores)>
<!ELEMENT nomalumne (#PCDATA)>
<!ELEMENT cognom (#PCDATA)>
<!ELEMENT nomuf (#PCDATA)>
<!ELEMENT hores (#PCDATA)>
<!ATTLIST alumne dni ID #REQUIRED)> <-----------------------------
<!ATTLIST uf codi ID #REQUIRED)>
<!ATTLIST cursa dni IDREF #IMPLIED)>
<!ATTLIST cursa codi IDREF #IMPLIED)>
La validación falla por un error en el archivo DTD (la linea marcada con <------), sin embargo la declaración ATTLIST está bien formada. El error que me indica es que espera un nombre de atributo al final de dicha linea, cuando el nombre del atributo ya está indicado (dni). Llevo una hora rascándome la cabeza y no veo dónde está el fallo.
Alguien me echa un cable?
^MiSaTo^
04/11/2014, 14:06
Tengo un archivo XML tal que asi:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE curs SYSTEM "UF1NF1A6_Activitats_DTD_ejercicio2.dtd">
<curs>
<alumnes>
<alumne dni="_200">
<nomalumne></nomalumne>
<cognom></cognom>
</alumne>
<alumne dni="_201">
<nomalumne></nomalumne>
<cognom></cognom>
</alumne>
<alumne dni="_202">
<nomalumne></nomalumne>
<cognom></cognom>
</alumne>
</alumnes>
<cursen>
<cursa dni="_200" codi="_1"/>
<cursa dni="_200" codi="_2"/>
<cursa dni="_200" codi="_3"/>
<cursa dni="_201" codi="_3"/>
<cursa dni="_202" codi="_1"/>
</cursen>
<ufs>
<uf codi="_1">
<nomuf></nomuf>
<hores></hores>
</uf>
<uf codi="_2">
<nomuf></nomuf>
<hores></hores>
</uf>
<uf codi="_3">
<nomuf></nomuf>
<hores></hores>
</uf>
</ufs>
</curs>
Y su DTD:
<!ELEMENT curs (alumnes,cursen,ufs)>
<!ELEMENT alumnes (alumne*)>
<!ELEMENT cursen (cursa*)>
<!ELEMENT ufs (uf*)>
<!ELEMENT alumne (nomalumne,cognom)>
<!ELEMENT cursa EMPTY>
<!ELEMENT uf (nomuf,hores)>
<!ELEMENT nomalumne (#PCDATA)>
<!ELEMENT cognom (#PCDATA)>
<!ELEMENT nomuf (#PCDATA)>
<!ELEMENT hores (#PCDATA)>
<!ATTLIST alumne dni ID #REQUIRED)> <-----------------------------
<!ATTLIST uf codi ID #REQUIRED)>
<!ATTLIST cursa dni IDREF #IMPLIED)>
<!ATTLIST cursa codi IDREF #IMPLIED)>
La validación falla por un error en el archivo DTD (la linea marcada con <------), sin embargo la declaración ATTLIST está bien formada. El error que me indica es que espera un nombre de atributo al final de dicha linea, cuando el nombre del atributo ya está indicado (dni). Llevo una hora rascándome la cabeza y no veo dónde está el fallo.
Alguien me echa un cable?
Te sobran los paréntesis de los ATTLIST. Te quedaría así:
<!ELEMENT curs (alumnes,cursen,ufs)>
<!ELEMENT alumnes (alumne*)>
<!ELEMENT cursen (cursa*)>
<!ELEMENT ufs (uf*)>
<!ELEMENT alumne (nomalumne,cognom)>
<!ELEMENT cursa EMPTY>
<!ELEMENT uf (nomuf,hores)>
<!ELEMENT nomalumne (#PCDATA)>
<!ELEMENT cognom (#PCDATA)>
<!ELEMENT nomuf (#PCDATA)>
<!ELEMENT hores (#PCDATA)>
<!ATTLIST alumne dni ID #REQUIRED>
<!ATTLIST uf codi ID #REQUIRED>
<!ATTLIST cursa dni IDREF #IMPLIED>
<!ATTLIST cursa codi IDREF #IMPLIED>
Molondro
04/11/2014, 14:18
Hostias que pifia, gracias misato!
y aprovecho para preguntar: algún editor de código que compruebe sintaxis a tiempo real? no me acabo de acostumbrar al teclado del portátil, y se me cuelan demasiados gazapos que luego tengo que ir revisando y corrigiendo
^MiSaTo^
04/11/2014, 14:34
Hostias que pifia, gracias misato!
y aprovecho para preguntar: algún editor de código que compruebe sintaxis a tiempo real? no me acabo de acostumbrar al teclado del portátil, y se me cuelan demasiados gazapos que luego tengo que ir revisando y corrigiendo
No te puedo recomendar porque yo uso mac :) Si tú también, entonces te recomiendo Coda. Sino mira a ver sublime Text + plugins para tema web que creo que eso si lo hay para windows tb
akualung
04/11/2014, 22:52
A mí me hablaron de un editor de código que se llama brackets, que es bastante nuevo pero se ve que tiene cosillas interesantes. Si le quieres echar un ojo a ver si cubre tus necesidades...
http://brackets.io/
IronArthur
05/11/2014, 12:39
Brackets (aunque es el que menos me gusta)
SublimeText con plugins
Atom
PhpStorm/Webstorm
Salu2
The_Punisher
05/11/2014, 13:11
Uno que pertenece a la "familia" de Webstorm y que forma parte del catálogo de software de JetBrains
https://www.jetbrains.com/idea/features/xml_editor.html
Para mí, son muy completos.
Slaudos :P
Notepad++ o vi son los únicos editores que utilizo.
Notepad++ o vi son los únicos editores que utilizo.
Que desperdicio existiendo sublime y emacs
-----Actualizado-----
Uno que pertenece a la "familia" de Webstorm y que forma parte del catálogo de software de JetBrains
https://www.jetbrains.com/idea/features/xml_editor.html
Para mí, son muy completos.
Slaudos :P
Hay version community.
Son muy buenos ides, caros pero yo creo que los mas completos hoy en dia.
IronArthur
07/11/2014, 09:22
Me suena q se puede conseguir el webstorm9 de gratis con email de estudiante.
Yo los uso de piratungos (web/phpstorm) junto con sublime/atom como editor sencillo.
Salu2
Molondro
07/11/2014, 09:42
Mabeis dejao deberes para el finde xD
sublime lo estuve mirando, pero no me mola que sea de pago :/
IronArthur
07/11/2014, 10:00
Mabeis dejao deberes para el finde xD
sublime lo estuve mirando, pero no me mola que sea de pago :/
Es de "pago" pq es tan de pago como el winrar. Cada x tiempo te sale una ventana de si quieres comprarlo el resto es 100% igual.
Salu2
Molondro
07/11/2014, 11:08
Es de "pago" pq es tan de pago como el winrar. Cada x tiempo te sale una ventana de si quieres comprarlo el resto es 100% igual.
Salu2
Pero... yo pagué el Winrar! aunque ahora use 7zip... :D
Sublime es de pago, pero compensa tener un editor multiOS con cantidad de atajos que te facilitan la vida, con sus plugins y tal. Vamos es el emacs de los mancos como yo.
Los de jetbrains me suena que tienen un IDE gratuito mantenido por la comunidad, todo es probar
IronArthur
07/11/2014, 12:46
Sublime es de pago, pero compensa tener un editor multiOS con cantidad de atajos que te facilitan la vida, con sus plugins y tal. Vamos es el emacs de los mancos como yo.
Los de jetbrains me suena que tienen un IDE gratuito mantenido por la comunidad, todo es probar
Mi problema es que como usos los dos me acostumbro a ciertas cosas q me gustan de uno y cosas de otro y me rallo cuando estoy en el otro :lol:
Me encanta el duplicar linea y el ir a definicion de funciones de *storm, me encantan los multi-cursores de sublime etc...
Salu2
Sublime tiene duplicar linea y selección. Control r definición. Es mas un editor que un ide
IronArthur
07/11/2014, 13:20
Sublime tiene duplicar linea y selección. Control r definición. Es mas un editor que un ide
De hecho lo uso como editor ligero ahora mismo, para desarrollar "en serio" uso el phpstorm.
Lo de duplicar linea es pq en sublime es ctrl+shift+d en vez de ctrl +d, que es multicursor. Y la definicion de funciones practicamente nunca me las coge bien sublime.
Salu2
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.