0

列に必要な列を記述したdtdファイルがあります。

問題は、列に使用する必要があるデータ型(INT、Varchar、Text)に関する情報がなく、列の最大長に関する情報がないことです。ほとんどの場所で、それは#PCDATA単に混合データを意味すると私が信じていると言っています。

使用する必要のあるデータ型と最大長を確認する方法はありますか、それとも単にテーブルをsでいっぱいにする必要がありますVarchar (255)か?

4

1 に答える 1

1

SGMLには型システムが(不)有名に欠けているため、あらゆる種類の要素の正しい型を推測するための機械的な方法はありません。#PCDATA「混合データ」を意味するのではなく、「解析された文字データ」を意味することに注意してください。コンテンツ#PCDATAを含む要素には他の要素を含めることはできませんが、エンティティ参照を含めることができます(SGMLでは、包含/除外の例外が発生します。しかし、それらはXMLには存在しません)。「混合コンテンツ」はのようなもの(element1 | #PCDATA)であり、データベーススキーマに変換するのは非常に困難です。

最善の策は、要素タイプ名またはDTDの有用なコメントからコンテンツタイプを推測するか、一連のドキュメントを調べてそれらの使用パターンを観察することです。

于 2011-07-31T12:24:06.317 に答える