1. ホーム
  2. Web制作
  3. XML/XSLT

XMLチュートリアル。エンティティ - XML/XSLT

2021-12-31 20:21:21

データはXML形式ではないので、NDATA宣言でデータ型を指定する。aviはNOTATIONで定義されたMIMEメディアタイプである。解析されていない実体をXMLに埋め込むことは複雑で非標準的であり、可能であれば避けるべきである。 実体の

    ENTITY宣言で実体を定義する。例えば
    <!ENTITY linux "リナックスはとても良いシステムです"> この文字列は&linuxで参照することができます。
    外部のXMLドキュメントを参照する外部エンティティを定義できる
    <!ENTITY linux SYSTEM "/home/linux/test.xml"> ホーム/linux/test.xmlドキュメントを参照するには、&linux;を使用します。
    外部エンティティはXML宣言を持ちませんが、テキスト宣言を持つことができます。これは非常によく似ていますが、主な違いは、テキスト宣言はエンコーディング宣言を持つ必要があり、バージョン情報はオプションであることです。
    <?xml version="1.0" encoding="gb2312"? > は正当なテキスト宣言です。 <?xml encoding="gb2312"? > もまた、合法的なテキスト宣言である。
    例:JPEG写真、MPEG動画など。XMLでは、このようなコンテンツを文書に埋め込むための仕組みとして、解析されていない外部のエンティティを使用することを推奨しています。DTDでは、非XMLデータを含むエンティティの名前とURIが指定されています。
    <!ENTITY movie SYSTEM "/home/linux/test.avi" NDATA avi>
    データはXML形式ではないので、NDATA宣言でデータ型を指定します。aviはNOTATIONで定義されたMIMEメディアタイプです。XMLに解析されていない実体を埋め込むのは複雑で非標準的なので、なるべく使わないでください。
    この記事はスクリプトハウス(https://www.jb51.net)が編集・公開したものです! 出典の引用をお願いします!ありがとうございました

      パラメータエンティティは、汎用エンティティのセットを定義することができ、エンティティはそのパラメータエンティティによってドキュメント内で参照されることができます。パラメータ・エンティティの定義は、真ん中に余分な%が付いていることと、%コード&で参照されることを除けば、一般エンティティの定義と似ています。
      <!ENTITY % person "名前,住所,郵便番号"> 参照方法 personを使用します。 これは、パラメータ・エンティティ %person を name,address,postcode に置き換えます。
      通常、DTDはかなり大きく、DocBookのDTDは11000行以上あり、1つのファイルに保存すると管理やメンテナンスが非常に困難になります。そこで、外部のDTDサブセットを利用して、大きなDTDを機能別に分割し、別々のファイルに格納することができます。これを、次のような外部パラメータ実体宣言によって、現在のDTDに導入します。
      外部のnames.dtdを参照するパラメータ実体を定義する <!ENTITY % names SYSTEM "names.dtd">。 外部DTDのサブセットを呼び出す %names。
      IGNORE キーワードを使用して、.NET のようなステートメントにアノテーションを付けます。
      <! [IGNORE[ <!ELEMENT note (#PCDATA)> ]]>
      もちろん、< を使っても! -- comment -->を使っても同じです。
      INCLUDEキーワードは、与えられた宣言がDTDで実際に使用されていることを示します。
      <! [INCLUDE[](インクルード <!ELEMENT note (#PCDATA)> ]]>
      この記述だけでは、INCLUDEがあってもなくても効果は同じですが、INCLUDEとIGNOREを組み合わせると、DTD関数の選択を実現することができるのです。パラメータの実体を定義できる
      <!ENTITY % note_allowed "INCLUDE" >
      次に、キーワードなしでパラメータの実体参照を使用します。
      <! [%note_allowed;[ <!ELEMENT note (#PCDATA)> ]]>
      上記のように、要素宣言は有効ですが、パラメータの実体%note_allowedをIGNOREと再定義することで、要素宣言が無効となります。