Вопросы по созданию таблицы MySQL из файла DTD
У меня есть файл dtd, который описывает, какие столбцы должны иметь мои столбцы.
Проблема в том, что он не дает никакой информации о том, какой тип данных я должен использовать для столбцов, то есть INT, Varchar или Text, и никакой информации о максимальной длине столбцов. В большинстве мест это говорит #PCDATA
который я считаю просто означает смешанные данные.
Есть ли способ узнать, какой тип данных и максимальную длину мне следует использовать, или мне просто составить таблицу, полную Varchar (255)
s?
1 ответ
В SGML (как правило) отсутствует система типов, поэтому нет никакого механизированного способа вывести правильный тип для любого типа элемента. Обратите внимание, что #PCDATA
не означает "смешанные данные", но "проанализированные символьные данные" - элемент с содержимым #PCDATA
не должен содержать никаких других элементов, но он может содержать ссылки на сущности (и в SGML он подвержен исключениям включения / исключения, но их нет в XML). "Смешанный контент" это что-то вроде (element1 | #PCDATA)
, что было бы намного сложнее перевести в схему базы данных.
Лучше всего либо выводить тип содержимого из имен типов элементов, либо из полезных комментариев в DTD, и / или проверять серию документов на предмет их модели использования.