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

学習チュートリアルのXML属性

2022-02-05 19:17:30
その

属性は、XML要素の一部です。1つの要素は複数の固有の属性を持つことができます。属性は、XML要素に関するより多くの情報を提供します。より正確には、属性は要素のプロパティを定義します。XMLの属性は常に_name-value_のペアで構成されます。

シンタックス
XML属性の構文は以下の通りです。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < 要素名  属性1 属性2  >
  2. ... .コンテンツ...   
  3. <スパン <スパン <

    要素名 >

ここで、attribute1 と attribute2 は次のような形式をとります。

XML/HTMLコード 内容をクリップボードにコピーする
  1. 名称  =  <スパン "値"。

はダブルクォート(" ")またはシングルクォート(' ')で囲む必要があります。ここでは、attribute1 と attribute2 は共にユニークな属性タグです。

属性は、要素に固有のタグを追加したり、タグを分類したり、ブーリアン属性を追加したり、文字列データを関連付けたりするために使用されます。次の例は、属性の使い方を示しています。

<スパン XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン <未定義 xml <スパン バージョン = "1.0"。 エンコーディング = "UTF-8"。 ?
  2. <スパン
  3. <未定義 >
  4. <未定義 >
  5. <未定義 >
  6. ] >
  7. <スパン <スパン <

    ガーデン >
  8. <スパン <スパン <

    植物 カテゴリー = "flowers"。 <スパン />
  9. <スパン <スパン <

    植物 カテゴリー = <スパン 低木" > <スパン
  10. <スパン <スパン <

    植物 >
  11. <スパン <スパン <

    ガーデン >

属性は、同じ名前の要素を区別するために使用されます。その都度、新しい要素を作りたくない場合。この属性を使って、2つ以上の似たような要素を区別するための詳細を追加することができます。

上の例では、category属性を含めることで植物を分類し、それぞれの要素に異なる値を割り当てています。つまり、花と色の2つの植物カテゴリーがあるので、両方とも異なる属性を持つ2つの植物要素を得ることができます。

また、この属性はXMLの冒頭で定義していることがわかります。

属性タイプ
属性の種類を次の表に示す。

<テーブル 属性の種類 説明 文字列の種類 は文字列を値として受け取ります。cdataはStringTypeです。これは、タグ付けされていない文字も合法的な属性であることを意味します。 トークン化タイプ

これは制約タイプである。構文で示される有効性制約は、属性値が正規化された後に適用される。以下はTokenizedType属性である。

  • IDです。 要素が一意であることを指定するために使用します。
  • IDREFです。 他の要素を指定するIDを参照するために使用します。
  • IDREFSです。 ある要素のすべてのIDを参照するために使用されます。
  • ENTITY。 その属性が文書内の外部実体を表すことを示す。
  • ENTITYS. その属性が文書内の外部実体を表すことを示す。
  • NMTOKEN。 属性の一部であるCDATAにできるデータを制限するのと似ています。
  • NMTOKENS。 属性の一部であるCDATAにできるデータを制限するのと似ています。
EnumeratedType

は、その宣言に定義済みの値のリストを含んでいます。ここで、値を割り当てる必要があります。列挙型属性には2つのタイプがあります。

  • NotationType。 この要素は、XML文書のある部分においてNOTATION宣言として参照されることを宣言している。
  • 列挙する。 Enumerationでは、プロパティ値が一致しなければならない特定の値のリストを定義することができます。

要素属性ルール
属性を定義する際のルールは以下の通りです。

属性名は、同じ開始タグまたは空要素タグの中に一度だけ出現することができます。
属性は、文書型定義(DTD)において属性リスト宣言を用いて定義する必要がある。
属性値には、外部エンティティへの直接または間接の参照を含んではならない。
属性値で直接または間接的に参照される実体の代替テキストは、小なり記号(<)を含んではならない。

子要素へのデータ格納
date属性が使用されているケース。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < ノート 日付 = <スパン "12/11/2002" <スパン > <スパン
  2. <スパン <スパン <

    まで > トーベ <スパン <

    まで >
  3. <スパン <スパン <

    から > ジャニ <

    から >
  4. <スパン
  5. <スパン <スパン <

    見出し > 備考 <スパン <

    見出し >
  6. <スパン <スパン <

    本体 > この週末、私を忘れないでね <スパン <

    本体 >
  7. <スパン <スパン <

    ノート >

2つ目のケースは、date要素を使用します。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < ノート >
  2. <スパン <スパン <

    日付 > 12/11 <未定義 <

    日付 >
  3. <スパン
  4. <

    まで > トーベ <スパン <

    まで >
  5. <スパン <スパン <

    から > ジャニ <

    から >
  6. <スパン <スパン <

    見出し > 備考 <スパン <

    見出し >
  7. <スパン <スパン <

    本体 > この週末、私を忘れないでね <スパン <

    本体 >
  8. <スパン <スパン <

    ノート >

3番目のケースは、拡張された日付要素を使用します(これは私たちの通常の方法です)。

XML/HTMLコード 内容をクリップボードにコピーする
  1. <スパン < ノート >
  2. <スパン <スパン <

    日付 >
  3. <スパン <スパン <

    > 12 <

    >
  4. <スパン <スパン <

    > 11 <

    >
  5. <スパン
  6. <スパン <スパン <

    > 2002 <

    >
  7. <スパン <スパン <

    日付 >
  8. <スパン <スパン <

    まで > トーベ <スパン <

    まで >
  9. <スパン <スパン <

    から > ジャニ <

    から >
  10. <スパン <スパン <

    見出し > 備考 <スパン <

    見出し >
  11. <スパン
  12. <スパン <スパン <

    本体 > この週末、私を忘れないでね <スパン <

    本体 >
  13. <スパン <スパン <

    ノート >