DT


DT
一、DMD概要
   ドキュメントタイプ定義(DMD)は、合法的なXMLドキュメント構築モジュールを定義することができます.これは一連の合法的な要素を使ってドキュメントの構造を定義します.DMDは、XMLドキュメント内で行音響的に明らかにすることができ、外部参照としてもよい.
1、内部のDOCTYPE声明
   DMDがXMLソースファイルに含まれている場合、以下の構文でDOCTYPE宣言で包装します.
               2、外部文書宣言
   DMDがXMLソースファイルの外部にある場合、次の構文によってDOCTYPE定義にカプセル化されるべきである.
              
二、DMD-XML構築モジュール
XMLおよびHTMLドキュメントの主な構築モジュールは<body>のようなラベルです.
1、XMLドキュメント構築モジュール
  すべてのXMLドキュメント(およびHTMLドキュメント)は、以下の簡単なモジュールで構成されています.
     元素、属性、エンティティ、PCDATA、CDATA
2、要素:要素はXML及びHTML文書の主な構築モジュールである.
HTML要素の例は「body」と「table」です.XML要素の例は「ノート」と「メッセージ」です.要素はテキスト、その他の要素、または空を含むことができます.空のHTML要素の例は「hr」、「br」及び「img」です.
例:
<body>body text in between</body>
<message>some message in between</messag<span style="font-family: SimSun; text-align: -webkit-center;">e></span>
3、属性:属性は要素に関する追加情報を提供することができます.
属性は常に要素の開始タブに配置されます.属性は常に名前と値でペアになります.以下の「img」要素はソースファイルに関する追加情報を持っています.


元素の名前は「img」です.属性の名称は「Src」です.属性の値は「computter.gif」です.元素自体が空なので、「/」で閉じられています.
4、エンティティ:エンティティは、通常のテキストを定義するための変数です.エンティティ参照は、エンティティへの参照である.
ほとんどの学生はこのHTMLエンティティを知っています. ".この「折りたたみなしのスペース」エンティティはHTMLで、あるドキュメントに追加のスペースを挿入するために使用されます.XML解析でドキュメントを解析すると、エンティティが展開されます.
次のエンティティはXMLで事前定義されています.
<<     >>     & &       " "     '  '
5、PCDATA:PCDATAの意味は解析された文字データです.
文字データはXML要素の開始ラベルと終了ラベルとの間のテキストとして考えられます.PCDATAは解析されるテキストです.これらのテキストは解析器によってエンティティとタグを検査されます.
テキスト内のラベルはタグとして処理され、エンティティは展開されます.ただし、解析された文字データは任意の&、<または>文字を含んではいけません.それらを&、<および>エンティティを使ってそれぞれ置き換えてください.
6、CDATA:CDATAの意味は文字データです.
CDATAは、解析されないテキストです.これらのテキストではタグとして扱われません.エンティティも展開されません.
 
三、DMD-元素
    DMDでは、要素は元素声明によって宣言される.
1、元素を宣言する
    DMDでは、XML元素は元素宣言によって宣言されます.元素宣言は以下の文法を使用します.
<!ELEEMENT元素名の種類>
または
<!ELEEMENT元素名(元素内容)>
2、空の要素
    空の要素はカテゴリのキーワードEMPTYで声明します.
<!ELEEMENT元素名EMPTY>
例:
    
XMLの例:
     

3、PCDATAだけの元素
     PCDATAのみの元素は、丸括弧の中の〓PCDATAによって宣言されています.
<!ELIEMENT元素名(〹PCDATA)>
例:
<!ELIEMENT from(〹PCDATA)
4、どんな内容の要素がありますか?
    カテゴリのキーワードANY声明の要素によって、解析可能なデータの組み合わせがあります.
<!ELEEMENT元素名ANY>
例:
<!ELLENT note ANY>
5、サブ要素(シーケンス)を持つ要素
     1つ以上のサブ要素を持つ要素は、括弧内のサブ要素名で宣言されます.
<!ELEEMENT要素名(サブ要素名1)>
または
<!ELEEMENT要素名(サブ要素名1,サブ要素名2,…)>
例:
<!ELEEMENT note(to,from,heading,body)>
    コンマで区切られたサブ要素の配列に従って宣言する場合、これらのサブ要素は同じ順序で文書に表示されなければなりません.完全な宣言では、サブ要素も宣言されなければなりません.サブ要素もサブ要素を持つことができます.
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>
6、声明は一回だけの要素が現れます.
<!ELEEMENT要素名(サブ要素名)>
例:
<!ELEEMENTノート>
    上記の例は、メッセージのサブ要素は一回だけ出現しなければならず、「ノート」要素の中に一回だけ出現しなければならないと表明しています.
7、少なくとも一回の元素が現れます.
<!ELEEMENT要素名(サブ要素名+)>
例:
<!ELEEMENT note(message+)>
    上記の例の中のプラス記号は、messageのサブ要素は、「note」の要素の中で少なくとも一回出現しなければならないと宣言しています.
8、0回以上の要素が現れると宣言する
<!ELEEMENT元素名(サブ元素名*)>
例:
<!ELINE note(message*)>
    上記の例では、サブ要素メッセージは、「ノート」要素内に0回以上発生することができると星号が宣言しています.
9、0回または1回の元素の出現を宣言する
<!ELEEMENT要素名(サブ要素名?)>
例:
<!ELEEMENTノート>
    上記の例の疑問符は、サブ要素messageが「note」要素内に0回または1回出現することができると宣言している.
10、「…ではない」タイプの内容を宣言する.
例:
<!ELEEMENT note(to,from,header,(message body)>
     上記の例では、「note」要素は「to」要素、「from」要素、「header」要素、および「message」以外の要素は「body」要素を含む必要があります.
11、ハイブリッドの内容を宣言する
例:
<!ELIEMENT note(菗PCDATA 124;トfrom 124; header me ssage)*>
上記の例では、「ノート」要素は、0回以上のPCDATA、「to」、「from」、「header」、または「message」を含むことができると述べている.
 
四、DMD-属性
     DMDにおいては、属性はATTLIST声明によって宣言される.
1、宣言のプロパティ
    属性宣言は次の構文を使います.
<!ATTLIST元素名属性タイプのデフォルト値>
    DMDの例:      XMLの例:       
属性の種類のオプションを以下に示します.
タイプ
説明
CDATA
値は文字データです.
(en 1|en2𞓜.)
この値は列挙リストの一つの値です.
ID
値は唯一のidです
IDREF
値は別の要素のidです.
IDREFS
値が他のidのリスト
NMTOKEN
値が合法的なXML名です.
NMTOKENS
値が合法的なXML名のリスト
ENTITY
値はエンティティです
ENTIES
値はエンティティのリストです.
NOTATION
この値は記号の名前です.
xml:
値は予め定義されたXML値です.
 
 
デフォルトのパラメータは以下の値を使用できます.

説明

属性の標準値
シシシレQUIRED
属性値が必要です.
ヽoo......................................................
属性は必須ではありません.
ヽoo.ツ......................................................
属性値は固定されています.
 
2、デフォルトの属性値を指定します.
DMD:
<!ELLENTスクウェアEMPTY>
<!ATTLISTスクウェアwidth CDATA“0”>
合法的なXML:
<スクウェアwidth=「100」/>
    上記の例では、「スクウェア」はCDATAタイプの「width」属性を持つ空要素として定義されています.幅が設定されていない場合、そのデフォルト値は0です.
3、皬IMPLIED
   構文
<!ATTLIST元素名属性名称属性タイプ

DMD:
<!ATTLIST contact fax CDATA嗳IMPLIED>
合法的なXML:
<contact fax=「555-667788」/>
合法的なXML:
<contact/>
    属性を強制的に含むことを望まない場合、デフォルトの値のオプションがない場合は、キーワードを使ってください.
4、啣REQUIRED
    構文
<!ATTLIST元素名属性名属性タイプ

DMD:
<!ATTLIST person number CDATA嗵REQUID>
合法的なXML:
<person number=“5677”/>
不正なXML:

    デフォルトの値のオプションがない場合は、プロパティを強制的に作成するには、キーワードを使ってください.
5、腣FIXED
構文
<!ATTLIST元素名属性名称属性タイプ啱FIXED“value”>

DMD:
<!ATTLIST sender company CDATA_FIXED「Microsoft」>
合法的なXML:
<sender company=「Microsoft」/>
不正なXML:
<sender company=「W 3 Schol」/>
    属性が一定の値を持つことを望むならば、著者がこの値を変更することは許されません.キーワードを使ってください.作者が異なる値を使うと、XML解析器はエラーを返します.
6、属性値を列挙する
構文:
<!ATTLIST元素名属性名(en 1|en2|.)デフォルト値>
DMDの例:
<!ATTLIST payment タイプ (check cash) "cash'>
XMLの例:
<payment type=「check」/>
または
<payment type=「cash」/>
属性値が一連の固定の合法値の一つを望むなら、属性値を列挙してください.
 
五、DMD-エンティティ
    エンティティは、通常のテキストまたは特殊な文字を参照するショートカット方式を定義するための変数です.エンティティ参照は、エンティティへの参照である.エンティティは、内部または外部で宣言することができる.
1、内部実体声明一つ
構文:
例:
DMDの例:
XMLの例:
&writer;©ライトauthor>
一つのエンティティは三つの部分から構成されています.一つの和号(&)と一つの実体名と一つのセミコロン(;)です.
2、外部実体声明一つ
構文:
例:
DMDの例:
>
>
XMLの例:
&writer;©ライトauthor>