#?SuikaWiki/0.9 [1] [[体系制御属性]]の一つ、[DFN[[RUBYB[体系的属性改名子][architectural attribute renamer]] (ArcNames) 属性]]は、 [[クライアント文書]]での[[属性]]や[[内容]]から[[体系的属性]]や[[体系的内容]]への写像を規定します。 この属性の既定値は「なし」です。つまり、同じ名前の体系的属性と対応 (したりしなかったり) します。 仕様書: [[ISO/IEC 10744]]:1997 A.3.5.2 [2] 属性値の構文: - [CODE(ABNF)[[DFN[改名子属性の値]] := *改名子]] - [CODE(ABNF)[[DFN[改名子]] := 体系的属性名 (クライアント属性名 / '#[[CONTENT]]' / '#[[DEFAULT]]') *字句写像 / '#[[ARCCONT]]' クライアント属性名]] - [CODE(ABNF)[[DFN[字句写像]] := '#[[MAPTOKEN]]' 体系的名前字句 クライアント名前字句]] (例によって [CODE(SGML)[[[s]]]] 区切りですが、 省略しています。) 特定のクライアント属性名、体系的属性名、 [CODE(SGML)[#CONTENT]], [CODE(SGML)[#DEFAULT]] は、一度のみ出現できます。 衝突・重複している場合は [[RAE]] です。 [3] :[CODE(ABNF)[[VAR[体系的属性名]] [VAR[クライアント属性名]]]]: [VAR(ABNF)[体系的属性名]]の体系的属性の値は、[VAR(ABNF)[クライアント属性名]]の属性の値とします。 :[CODE(ABNF)[[VAR[体系的属性名]] '#DEFAULT']]: [VAR(ABNF)[体系的属性名]]の体系的属性の値は、クライアント文書にはよりません。 体系 DTD で既定値があれば、それを使用します。 :[CODE(ABNF)[[VAR[体系的属性名]] '#CONTENT']]: [VAR(ABNF)[体系的属性名]]の体系的属性の値は、 クライアント文書の当該要素の子孫[[データ]]を連結したものとします。 このとき、当該クライアント要素の内容は[[体系的内容]]とはしません。 ([CODE(SGML)[#ARCCONT]] がない限り、体系的内容は空になります。) [[データ属性]]ではこの指定は使用できません。 :[CODE(ABNF)['#MAPTOKEN' [VAR[体系的名前字句]] [VAR[クライアント名前字句]]]]: クライアント文書で指定された値の中の字句に[VAR(ABNF)[クライアント名前字句]]と一致するものがあれば、 [VAR(ABNF)[体系的名前字句]]とみなします。 体系的属性が [CODE(SGML)[[[CDATA]]]] の場合は、 字句化した後に置換することとします。 :[CODE(ABNF)['#ARCCONT' [VAR[クライアント属性名]]]]: [VAR(ABNF)[クライアント属性名]]の名前の属性の値を、 体系的内容とします。このとき、当該クライアント要素の内容は体系的内容とはしません。 データ属性ではこの指定は使用できません。 [4] ある要素について、[[原始要素属性]]でも[[連結属性]]でも体系的属性改名子属性が指定して構いません。 原始要素属性である体系的属性改名子属性は、 原始要素に関して適用します。連結属性である体系的属性改名子属性は、 連結属性で適用できればその属性に、適用できなければ原始要素属性に適用します。