Вопросы по созданию таблицы MySQL из файла DTD

У меня есть файл dtd, который описывает, какие столбцы должны иметь мои столбцы.

Проблема в том, что он не дает никакой информации о том, какой тип данных я должен использовать для столбцов, то есть INT, Varchar или Text, и никакой информации о максимальной длине столбцов. В большинстве мест это говорит #PCDATA который я считаю просто означает смешанные данные.

Есть ли способ узнать, какой тип данных и максимальную длину мне следует использовать, или мне просто составить таблицу, полную Varchar (255)s?

1 ответ

Решение

В SGML (как правило) отсутствует система типов, поэтому нет никакого механизированного способа вывести правильный тип для любого типа элемента. Обратите внимание, что #PCDATA не означает "смешанные данные", но "проанализированные символьные данные" - элемент с содержимым #PCDATA не должен содержать никаких других элементов, но он может содержать ссылки на сущности (и в SGML он подвержен исключениям включения / исключения, но их нет в XML). "Смешанный контент" это что-то вроде (element1 | #PCDATA), что было бы намного сложнее перевести в схему базы данных.

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

Другие вопросы по тегам