Esiste un modo in .Net per generare programmaticamente un DTD da un file XML esistente?
-
03-07-2019 - |
Domanda
Ho cercato lo spazio dei nomi System.Xml, ma non vedo nulla che possa supportarlo. Qualcuno sa se è integrato in .Net o dovrei ottenere una libreria di terze parti per farlo?
NOTA: vorrei che fosse semplice come generare un xsd, ma ciò non funzionerà per la mia situazione specifica.
Soluzione
Sarebbe molto facile da fare, ma molto difficile renderlo utile.
DTD è una grammatica. È banale generare una grammatica che genera solo il file XML specificato e nessun altro. Questo è ovviamente inutile in pratica. Ciò di cui probabilmente hai bisogno è creare una grammatica che generi file "come questo", e questo è un grave problema di intelligenza artificiale.
Modifica: questo problema è noto come "Induzione grammaticale" o " Inferenza grammaticale " ;.
Altri suggerimenti
Non sono sicuro di DTD ma è possibile generare file XSD da un file xml usando strumento Xsd.exe . Di solito vive nella seguente directory:
C: \ Programmi \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin \ xsd.exe
Bene, xsd.exe dovrebbe essere in grado di procurarti un xsd. Per quanto riguarda il dtd, xmlpad3 afferma di essere in grado di farlo (ed è gratuito). Non ho provato, quindi non posso garantirlo.