ホームページ  >  記事  >  バックエンド開発  >  XML 入門チュートリアル - 属性宣言のコード例

XML 入門チュートリアル - 属性宣言のコード例

黄舟
黄舟オリジナル
2017-03-15 16:51:201818ブラウズ

有効な XML ドキュメントでは、要素の 属性 を宣言する必要があります。これは、ATTLIST 宣言を使用して行われます。ATTLIST では、要素タイプに対して複数の属性を宣言できます。
ee56423a142649b0ea5b04fbc1a6279c
上記の例は、image 要素には src 属性が必要であり、この属性の値は文字データであることを宣言しています。 ATTLIST ステートメントを使用して、次のような要素の複数の属性を宣言できます。
a425c7d488e111c4d38623445ec6a62f out src、width、height 属性は必須ですが、alt 属性はオプションです。 1. 属性タイプ

CDATA タイプの属性値には、任意のテキスト

文字列を含めることができます。 DTD は、属性を 整数 または日付として指定することはできません。スキーマは、より強力な データ型 を提供できます。

NMTOKEN タイプの属性値は XML 名トークンです。 XML 名トークンは XML 名に似ていますが、XML 名トークンではすべての文字を名前の開始文字として使用できますが、XML 名の最初の文字は文字、表意文字、およびアンダースコアである必要があります。つまり、10.bashrc は正当な XML 名タグですが、正当な XML 名ではありません。すべての XML 名は XML 名タグですが、すべての XML 名タグが XML 名であるわけではありません。属性に 1990、2005 などの整数が含まれる場合、そのタイプは NMTOKEN として指定する必要があります。例:

<!ELEMENT person birthday NMTOKEN #REQUIRED>

NMTOKENS タイプ属性には、空白で区切られた 1 つ以上の XML 名トークンが含まれます。例:

<person dates="02-01-2005 03-01-2005 05-01-2005">person</person>

対応する宣言は次のようになります:

<!ATTLIST person dates NMTOKENS #REQUIRED>

一方、スラッシュは有効な名前文字ではないため、この宣言はフォーム 01/02/2005 には使用できません。

列挙型宣言。列挙型にはキーワードは使用されません。すべての値を垂直バーで区切って直接リストします。例:

<!ATTLIST date month(January | February | March | April | May | June | July | August | September | October | November | December) #REQUIRED>

上記のステートメントに応じて、date 要素の month 属性は 12 か月のうちの 1 つを選択できます。

タイプ ID の属性には、ドキュメント内で一意の XML 名が含まれている必要があります。 ID 属性は、要素に一意の識別子を割り当てます。

<!ATTLIST name card_id ID #REQUIRED>

数字は有効な XML 名ではないため、ID 番号を数字で始めることはできません。解決するには、先頭にアンダースコアまたは文字を追加します。

IDREF タイプ属性は、ドキュメント内の要素の ID タイプ属性を指します。したがって、単純な包含関係では不十分な場合に、要素間に多対多の関係を確立することを目的とした XML 名である必要があります。例:

<project project_id="p1"> <goal>deploy linux</goal> 
<team_member person_card_id="c123"> </project> 
<person card_id="c123"> <name>linuxsir</name> 
<assignment project_project_id="p1"> </person>

project 要素の project_id 属性と person 要素の Card_id 属性は ID タイプである必要があります。 Team_member 要素の person_card_id 属性と、assignment 要素の project_project_id 属性のタイプは IDREF です。対応する宣言は次のとおりです。

<!ATTLIST person card_id ID #REQUIRED> 
<!ATTLIST project project_id ID #REQUIRED> 
<!ATTLIST team_member person_card_id IDREF #REQUIRED> 
<!ATTLIST assignment project_project_id IDREF #REQUIRED>

IDREFS 型の属性には、XML 名のリストが含まれます。名前は空白で区切られており、各名前はドキュメント内の要素の ID です。この要素は、要素が他の複数の要素を

参照する必要がある場合に使用します。例:

<!ATTLIST person card_id ID #REQUIRED assignment IDREFS #REQUIRED> 
<!ATTLIST project project_id ID #REQUIRED team IDREFS #REQUIRED>

対応するドキュメントは次のように記述できます:

<project project_id="p1" team="c123"> 
<gold>deploy linux</gold> </project> 
<person card_id="c123" assignment="p1"> 
<name>Linuxsir</name> </person>

ENTITY タイプ属性は、DTD の

other 位置で宣言された未解析エンティティの名前に含まれます。たとえば、movie 要素には、アクティブ化されたときに再生される mpeg または rm ファイルを識別するエンティティ属性が含まれる場合があります:

<!ATTLIST movie src ENTITY #REQUIRED>

DTD が play という名前の解析されていないエンティティを宣言している場合、この movie 要素を使用して

video ファイルを埋め込むことができます。 XML ドキュメント内:

<movie src="play" />

ENTITIES 型の属性には、DTD 内の別の場所で宣言された、空白で区切られた複数の解析されていないエンティティ名が含まれています。

<!ATTLIST slide_show slides ENTITIES #REQUIRED>

DTD が解析されていないエンティティ slide1、slide2、slide3、... を宣言している場合、slide_show 要素を使用してスライドを XML ドキュメントに埋め込むことができます。

<slide_show slides="slide1 slide2 slide3" />

NOTATION 型のプロパティには、ドキュメントの DTD で宣言された表記法の名前が含まれます。この属性タイプはほとんど使用されません。理論的には、この属性を使用して、特定の特殊な要素をタイプに関連付けることができます。次の例では、さまざまなイメージ タイプの 4 つの表記法を宣言し、各イメージ要素がそれらからタイプ属性を選択する必要があると規定しています。

<!NOTATION gif SYSTEM "image/gif"> 
<!NOTATION tiff SYSTEM "image/tiff"> 
<!NOTATION jpeg SYSTEM "image/jpeg"> 
<!NOTATION png SYSTEM "image/png"> 
<!ATTLIST image type NOTATION (gif | tiff | jpeg | png) #REQUIRED>

各画像要素の type 属性の値は、gif、tiff、jpeg、png の 4 つの値のいずれかになります。理論的には表記の実際の MIME メディア タイプが使用できるため、このプロパティには列挙型よりも若干の利点があります。スラッシュは XML 名では有効な文字ではないため、列挙型では許容値として image/png または image/jpeg を指定できません。

2.属性缺省值 
每个ATTLIST声明除了要提供一种数据类型外,还要声明属性的缺省行为。 

#IMPLIED,属性可选。 

#REQUIRED,属性必须有。 

#FIXED,属性是常量,不能更改。 

<!ATTLIST person name CDATA #FIXED "linuxsir"

Literal,作为一个引用字符串的实际缺省值。 

<!ATTLIST person name NMTOKEN "linuxsir"

如果没有显示指明person元素的name属性,则该值为linuxsir。

以上がXML 入門チュートリアル - 属性宣言のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。