php-скрипт для преобразования xml в dtd


Существует ли какой-либо PHP-скрипт для преобразования XML-файла в DTD.

Я много пробовал. Я могу найти инструменты, но не могу написать PHP-скрипт.

Есть ли они?

Любая помощь будет благодарна...

Феро

 5
Author: Fero, 2010-02-23

2 answers

Создание DTD из XML-файла - это то, что я не видел довольно часто - одна из основных причин заключается в том, что вы не можете быть уверены, что XML-файл, который вы использовали для создания DTD, будет содержать все, что должно определять DTD.

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


При этом я не нашел ни одного PHP-инструмента для создания DTD из XML-файла...

... Но я нашел JAVA-версию : DTDGenerator - Инструмент для создания XML-DTD ( цитирование) :

DTDGenerator - это программа, которая принимает XML-документ в качестве входных данных и создает определение типа документа (DTD) в качестве вывода.

Цель программы состоит в том, чтобы дать вам краткое начало написания DTD.
DTD - это один из многих возможных DTD , которым соответствует входной документ.
Как правило, вы захотите изучить DTD и отредактируйте его, чтобы более точно описать ваши предполагаемые документы.


Пара приятных моментов в этой программе DTDGenerator:

  • На веб-сайте есть некоторые пояснения об основных идеях того, как это работает
  • Исходный код предоставлен
  • Длина всего менее 600 строк
    • что означает один должен быть в состоянии понять без особых усилий
    • и возможно, перенесите его на PHP ?
    • И в исходном коде есть некоторые комментарии , которые помогли бы.
  • Он опубликован под MPL -- что означает открытый исходный код; что хорошо, если вы хотите его перенести


Начиная с исходного кода этой программы, должна быть возможность написать некоторый PHP-код (если вы не можете выполнить JAVA, и вам действительно нужно это должно быть написано на PHP) чтобы сделать то же самое: основные идеи не так сложны:

  • Вы должны пройти через структуру XML
  • построение древовидного представления для каждого начального тега
    • что означает элементы
    • которые могут иметь атрибуты
  • И, когда вы закончите просмотр XML-документа, вам нужно будет создать DTD на основе вашего представления документа
    • Это может быть самой трудной частью -- глядя на источник инструмента JAVA, на который я ссылался, он представляет довольно большое количество строк кода ^^

Приятно взглянуть на это DTDGenerator прежде чем начать, его автор уже думал об этом процессе - и уже определил некоторые ситуации, о которых вы, возможно, не подумали ;-)

 4
Author: Pascal MARTIN, 2010-03-11 12:16:44

Вот что я нашел, что может быть полезно: http://www.hitsw.com/xml_utilites/

Существует также класс, который кажется многообещающим: http://phpclasses .2by2host.com/browse/package/250.html

 0
Author: Chuck Burgess, 2010-03-08 19:00:09