В .Net есть способ программно сгенерировать DTD из существующего XML-файла? - PullRequest
3 голосов
/ 20 октября 2008

Я искал пространство имен System.Xml, но не вижу ничего, что могло бы это поддержать. Кто-нибудь знает, встроен ли он в .Net, или я должен был бы получить стороннюю библиотеку, чтобы сделать это?

ПРИМЕЧАНИЕ. Хотелось бы, чтобы это было так же просто, как создание xsd, но это не подходит для моей конкретной ситуации.

Ответы [ 3 ]

2 голосов
/ 20 октября 2008

Это было бы очень легко сделать, но очень трудно сделать это полезным.

DTD - это грамматика. Тривиально создать грамматику, которая генерирует только данный файл XML, а не какой-либо другой. Это, конечно, бесполезно на практике. Вероятно, вам нужно создать грамматику, которая генерирует файлы «как этот», и это сложная проблема ИИ.

Редактировать: Эта проблема известна как "Грамматическая индукция" или "Грамматический вывод".

0 голосов
/ 20 октября 2008

Хорошо, xsd.exe должен иметь возможность получить xsd. Для стороны dtd xmlpad3 утверждает, что может сделать это (и бесплатно). Я не пробовал, поэтому я не могу ручаться за это.

0 голосов
/ 20 октября 2008

Я не уверен насчет DTD, но вы можете сгенерировать XSD-файлы из XML-файла, используя инструмент Xsd.exe . Обычно он находится в следующем каталоге:

C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin \ xsd.exe

...