Kennen Sie ein Tool, das eine DTD (oder ein anderes XML-Strukturspezifikationsformat) aus einem Beispielsatz von XML-Dateien ableitet? Die einzige (automatische) Validierung, die wir für eine xml-codierte DSL haben, ist ein Legacy-Parser, der in Perl geschrieben ist, aber aus Gründen der Konsistenz muss der gesamte Perl-Code nach C-Shared portiert werden.Ableiten von DTD (oder einem anderen XML-Spezifikationsformat) aus XML-Dateibeispielen
Antwort
http://www.stylusstudio.com/dtd_generator.html ist eine Software, die einen DTD-Generator implementiert.
http://www.pmg.csail.mit.edu/~chmoh/pubs/wecwis.pdf scheint wie ein nettes Papier auf die Art von Dingen, die Sie benötigen würden, aber ich kann nirgendwo (tatsächlich) den Code irgendwo finden bis jetzt.
Hier ist ein weiteres Papier zu diesem, wieder, kein Code zu finden: http://www.softnet.tuc.gr/~minos/Papers/debull03.pdf.
Schließlich würde ich vorschlagen, dass Sie sich mit RELAX NG oder Schematron beschäftigen, um stattdessen Ihr XML zu validieren. Diese Sprachen sind viel ausdrucksstärker, so dass sie einfacher zu lesen und in den Dingen, die Sie validieren können, leistungsfähiger sind. (Achten Sie darauf, das XML-Schema zu überspringen, das weithin als unübersichtlich gilt.)
Altova's XMLSpy hat einen DTD/XML-Schema-Generator.
Das generierte DTD/XML-Schema erfordert normalerweise ein wenig Feinabstimmung. Beispielsweise könnte das Tool eine Liste von Attributen oder Elementen auflisten, wenn Sie "gemeint" haben, dass es einen beliebigen Wert zulässt. Sie geben nur eine Probe Ihres Problembereichs, und es muss von spezifisch zu allgemein gehen. Aus diesem Grund werde ich nicht zu sehr aus der Form gebogen, wenn es mir nicht gelingt, meine Gedanken zu lesen.
Ich betrachte das generierte dtd oder Schema als Startpunkt. Es ist besser, als es von Null aus zu rollen. Äh, wenn Sie mit bestehenden XML-Dokumenten beginnen.
Auch wenn Sie die generierte dtd nicht verwenden, ist dies eine gute Möglichkeit, sich mit der Struktur einer Reihe von unbekannten XML-Dokumenten vertraut zu machen.
Der XMLMax-Editor erstellt eine XSD aus einer XML-Datei. Die kostenlose Testversion (keine Registrierung/kleine Download-Datei) wird dies für Sie tun. Wenn Sie dies in Code ausführen möchten, verfügt .NET Framework über eine XmlSchemaInference-Klasse, die automatisch eine XSD aus einer XML-Datei erstellt.
Sie können xsd.exe
(Teil von Visual Studio) verwenden, um ein XML-Schema für eine bestimmte XML-Datei zu generieren.
Sie können versuchen Trang
oder Instance to Schema Tool
(Teil von XMLBeans).
Ich legte sie in einen Test mit 1 GB XML-Datei. Hier sind die Ergebnisse:
max memory [kB] - 98,480
time [MM:SS] - 0:24
max memory [kB] - 5,993,240
time [MM:SS] - 7:36
Hier ist das Programm, das DTDGenerator für mich gearbeitet. Sie müssen es mit Java kompilieren, aber es funktioniert gut. Ich bin überrascht von dem Mangel an freier Software für eine Sprache, die es schon lange gibt, aber diese ist kostenlos unter Mozilla Public License Version 1.0.
Diese Frage ist ziemlich alt, scheint aber immer noch relevant zu sein. Eine Antwort mit aktuellen Vorschlägen ist willkommen. – lexu
Vielen Dank ... wirklich, es gibt einen Mangel an freier Software! danke für Ihre Hilfe!! :) –
Sie können den folgenden Link zum Generieren von Schemas online verwenden, indem Sie nur die XML-Daten angeben. http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx
Sie können die kostenlose JetBrains IDEA Community Edition herunterladen. Es verfügt über integrierte Tools für GTDs und Schemen zu erzeugen: etwas
http://www.jetbrains.com/idea/webhelp/generating-dtd.html
Vielleicht nicht perfekt, aber es ist.
Nur http://www.freeformatter.com/xsd-generator.html verwendet, um eine Xsd aus einer XML-Datei zu generieren. Es hat auch viele andere Formatierungsmöglichkeiten!
- 1. grundlegende Frage mit einem dtd
- 2. Wie kann man aus einem Projektionstyp den richtigen Typparameter ableiten?
- 3. Abstrakte Klasse aus nicht abstrakter Klasse ableiten
- 4. Kraft aus einer Klasse ableiten praktisch
- 5. Ableiten von VirtualizingStackPanel funktioniert nicht
- 6. Aurelia: Ableiten einer Komponente aus einer anderen und Wiederverwendung von HTML
- 7. Ableiten von Autonummer basierend auf Wert aus einer anderen Spalte in SQL
- 8. Rückgabe von Objekten aus einem anderen Thread?
- 9. Daten von Array aus einem anderen Thread
- 10. Ableiten von PHP-Closure-Parametern
- 11. Wie kann der Scala-Compiler einen Typ von einem anderen Typ ableiten?
- 12. Polymorphie: Ableiten von einem geschützten Member in einer Basisklasse?
- 13. Wie DTD enthält in einem XML-Dokument
- 14. Ableiten von Klasse von Generic T
- 15. Kopieren von Daten aus einem externen Arbeitsblatt zu einem anderen
- 16. Bash: Löschen von Elementen in einem Array aus einem anderen
- 17. Inhalt von einem Formular aus einem anderen Formular aktualisieren vb.net
- 18. Ableiten von Klasseninstanzen für Fallklassen mit genau einem Feld
- 19. Abfangen von Ausnahmen von einem Ereignishandler aus einer anderen Klasse
- 20. DTD ATTLIST Nummernbereich
- 21. Ableiten von einer Klasse mit Operator überladen
- 22. dtd und gemischter Inhalt
- 23. Beitritt zu einem anderen Tisch oder nicht?
- 24. Wann sollten Sie ein DTD- oder XML-Schema schreiben?
- 25. Run Embedded-Code aus einem anderen Namespace
- 26. So öffnen Sie eine App von einem anderen Gerät aus
- 27. Java-XML-DTD-Validierung
- 28. LinkedIn-Profil-URL von Benutzer-ID ableiten?
- 29. ableiten Template-Argument von std :: Funktionsaufruf Signatur
- 30. Ableiten von beliebigen Funktionen in Haskell
Interessantes Dokument! Schade, dass sie den Code nie veröffentlicht haben (in einer Weise, die ich finden kann :-) – lexu
http://www.hitsw.com/xml_utilites/ verspricht, eine DTD/Schema aus einer einzigen XML-Datei zu erstellen. – lexu
RE - RELAX NG oder Schematron: Ich werde sehen, ob Validatoren für die dotNet-Umgebung existieren. danke für die Tipps! – lexu