2009-11-29 36 views

回答

7

http://www.stylusstudio.com/dtd_generator.html是實現DTD生成器的實際軟件。

http://www.pmg.csail.mit.edu/~chmoh/pubs/wecwis.pdf對於你需要的東西看起來像是一篇不錯的論文,但是到目前爲止我找不到(鏈接到)紙上任何地方的實際代碼。

下面是關於此的另一篇論文,同樣沒有找到代碼:http://www.softnet.tuc.gr/~minos/Papers/debull03.pdf

最後,我還建議您考慮使用RELAX NG或Schematron來驗證您的XML。這些語言更富有表現力,使得它們更容易閱讀,並且在您可以驗證的事物中更強大。 (請務必跳過被廣泛認爲是一團糟的XML Schema。)

+1

有趣的文件!太糟糕了,他們從來沒有發佈代碼(以我能找到的方式:-) – lexu 2009-11-29 10:59:46

+1

http://www.hitsw.com/xml_utilites/承諾從單個XML文件創建DTD /模式。 – lexu 2009-11-29 11:02:54

+0

RE - RELAX NG或Schematron:我會看看驗證器是否存在於dotNet環境中。感謝提示! – lexu 2009-11-29 11:05:51

1

Altova's XMLSpy有一個DTD/XML Schema生成器。

生成的DTD/XML模式通常需要稍微調整。例如,該工具可能枚舉屬性或元素的列表,當您「爲了」而允許任何值時。你只是給它一個你的問題空間的樣本,但它必須從具體到普通。出於這個原因,當我沒有閱讀我的想法時,我並沒有太過彎曲。

我認爲生成的dtd或模式是一個起點。它比從零開始手動滾動要好。呃,如果你從現有的XML文檔開始,那就是。

即使您不打算使用生成的dtd,它也是一個很好的方式來讓您瞭解一組不熟悉的XML文檔的結構。

1

XMLMax編輯器將從XML文件創建XSD。免費試用版(無註冊/小型下載文件)將爲您做到這一點。如果你想在代碼中做到這一點,.NET框架有一個XmlSchemaInference類,它可以從xml文件自動創建一個XSD。

8

您可以使用xsd.exe(Visual Studio的一部分)爲給定的XML文件生成XML模式。

2

這裏是爲我工作DTDGenerator程序。您需要使用Java進行編譯,但運行良好。我對一種已經存在了很長一段時間的語言缺乏免費軟件感到驚訝,但是這個免費軟件在Mozilla Public License Version 1.0下是免費的。

+0

這個問題是相當古老的,但似乎仍然相關。歡迎提供有關當前建議的回覆。 – lexu 2013-08-07 14:22:57

+0

非常感謝你......真的,缺乏自由軟件!謝謝你的幫助!! :) – 2016-04-11 18:48:57