Вопросы по созданию таблицы MySQL из файла DTD - PullRequest
0 голосов
/ 31 июля 2011

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

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

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

1 Ответ

1 голос
/ 31 июля 2011

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

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

...