¿Existe una forma en .Net para generar mediante programación un DTD a partir de un archivo XML existente?
-
03-07-2019 - |
Pregunta
He estado buscando en el espacio de nombres System.Xml, pero no veo nada que pueda admitir esto. ¿Alguien sabe si está integrado en .Net o tendría que obtener una biblioteca de terceros para hacerlo?
NOTA: desearía que fuera tan simple como generar un xsd, pero eso no sirve para mi situación específica.
Solución
Sería muy fácil de hacer, pero muy difícil hacerlo útil.
DTD es una gramática. Es trivial generar una gramática que genere solo el archivo XML dado y ningún otro. Esto es, por supuesto, inútil en la práctica. Lo que probablemente necesites es crear una gramática que genere archivos " como este " ;, y este es un problema difícil de AI.
Editar: este problema se conoce como " Inducción de gramática " o " Inferencia gramatical " ;.
Otros consejos
No estoy seguro de la DTD pero puede generar archivos XSD a partir de un archivo xml usando Xsd.exe . Normalmente vive en el siguiente directorio:
C: \ Archivos de programa \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin \ xsd.exe
Bueno, xsd.exe debería poder conseguirte un xsd. Para el lado de dtd, xmlpad3 afirma poder hacer esto (y es gratis). No lo he intentado, así que no puedo responder por ello.