2010-02-23 40 views
5

¿Existe algún script PHP para convertir archivos XML a DTD.script php para convertir xml a dtd

Probé mucho. Puedo encontrar herramientas pero no puedo escribir PHP.

¿Hay alguno?

cualquier ayuda será agradecida ...

Fero

+0

No Te significa un archivo de esquema XML o simplemente un archivo XML arbitrario? – Gordon

+0

solo archivo arbitrario Gordon ... lo siento por el retraso ... – Fero

+3

No conozco ninguno, pero sería genial, si es posible. Quiero decir, una DTD también especifica cosas como reglas de anidamiento y tipos de datos. Crear una DTD a partir de un archivo XML es como construir reglas gramaticales en inglés a partir de este comentario. ¿La ausencia de la palabra "ciclismo" significa que no es una palabra legal? – Pepijn

Respuesta

4

Generar un DTD a partir de un archivo XML es algo que no he visto muy a menudo. Una de las razones principales es que no se puede estar seguro de que el archivo XML que usó para generar el DTD w contiene todo lo que la DTD debe definir.

es decir, la DTD generada solo contendrá los elementos y atributos que estaban presentes en ese archivo XML específico , lo que no necesariamente significa todos los elementos y atributos que se deben aceptar al usarlo más tarde.


Dicho esto, no he encontrado ninguna herramienta PHP para crear una DTD desde un archivo XML ...

... Pero he encontrado una JAVA uno: DTDGenerator - A tool to generate XML DTDs(citando a):

DTDGenerator es un programa que toma documento un XML como entrada y produce una definición de tipo de documento (DTD) como outp ut.

El objetivo del programa es darle a un comienzo rápido para escribir una DTD.
La DTD es una de las tantas posibles DTD a las que se ajusta el documento de entrada.
Normalmente, querrá examinar la DTD y editarla para describir sus documentos previstos con mayor precisión.


Un par de cosas buenas acerca de este programa DTDGenerator son:

  • Hay algunas explicaciones en la página web sobre las ideas básicas de cómo funciona esto
  • se proporciona el código fuente
  • Es sólo menos de 600 líneas de largo
    • lo que significa que uno debe estar capaz de entender sin demasiados esfuerzos
    • y posiblemente lo conecte a PHP?
    • Y hay algunos comentarios en el código fuente - que ayudaría.
  • Se publicó en MPL- que significa código abierto; Lo cual es bueno, si quiere portarlo


A partir de código fuente de ese programa, debería ser posible escribir algo de código PHP (si no se puede ejecutar Java, y realmente necesitará para ser escrita en PHP) a hacer lo mismo: las ideas básicas no son tan difíciles:

  • usted tiene que ir a través de la estructura XML
  • la construcción de un árbol de representación de que, en cada a partir etiqueta
    • lo que significa que los elementos
    • que pueden tener atributos
  • Y, cuando haya terminado pasando por el documento XML, usted tiene que construir la DTD de su reprensentation del documento
    • que podría ser la parte más difícil - mirando a la fuente de la herramienta JAVA he vinculado, es bastante reprensents un gran número de líneas de código ^^

Lo bueno de echar un vistazo a este DTDGenerator antes de empezar es que su autor ya se pensó en este proceso - y ya identificado algunas situaciones que no podría pensar ;-)