Translation5:Object Reference Format

From IDMLWiki

Jump to: navigation, search

9.5.4 オブジェクト参照フォーマット

スクリプト用のオブジェクトモデルのプロパティは、しばしばオブジェクトの参照を含んでいます。例えば、「Rectangle」の「FillColor」のプロパティは常に「Color」「Tint」「MixedInk」「Gradient」、または「Swatch」オブジェクトを参照するでしょう。IDMLは、属性を表すXMLエレメントかプロパティの値としてオブジェクト(ドキュメントのほかの場所に保存される)を表すXMLエレメントへの言及を含めることによって、この関係を表現します。オブジェクト参照はIDMLファイル内の最も一般的な相互参照フォーマットです。

XML要素にオブジェクトをシリアライズするとき、InDesignはエレメントのIDに一意な文字列を生成して、「Self」属性にそれを格納します。ID生成するのに使用されるアルゴリズムは、複雑でAdobe独自ですが、以下の規則に従います:

  • オブジェクトが、名前によってそのメンバーを識別するクラスに属する場合、エレメントの「Self」属性の値が名前になるでしょう。名前が一意でない場合、InDesignはインポート時に接頭辞(かつ/または)接尾語を加えて固有のIDを生成します。
  • オブジェクトが別のオブジェクトの子供であるなら、親オブジェクトの名前かIDが接頭語として「Self」属性の値に加えられるでしょう。パス構文と同様のパターンを使用して:
  1. /parent/childname
  • オブジェクトに名前がないと、オブジェクトのIDプロパティの値は、エレメントの「Self」属性の値として使用されるでしょう。
  • 複数のオブジェクトが同じタイプで存在している場合、インデックス数が接尾辞として「Self」属性に加えられるでしょう。
    「Self」属性の値の唯一の要件は、IDMLパッケージの中で一意であることです。IDMLを自分で書いているなら、あなたは上のパターンを観測する必要はありません--(IDMLパッケージ内でその値が)一意であり、エレメントのすべての参照の変更が一致する限り、「Self」属性の値を好きなように変更できます。
  1. <Story Self = "ucb" .../>
下記にXMLエレメントの値として表現された要素参照の例を示します。例では、<ParagraphStyle>エレメントの<BasedOn>エレメントは「Self」属性が値の「Heading」(段落スタイルの名前)を含む別の<ParagraphStyle>エレメントを参照します。この場合、段落スタイルはIDMLパッケージの中のResourcesフォルダーの中のStyles.htmlファイルで定義されます。
  1. <BasedOn type="object">ParagraphStyle\Heading</BasedOn>
また、相互参照は属性の値として現れることができます。次の例では、<IndexOptions>エレメントの「TitleStyle」属性は「Self」属性が値の「IndexTitle」(段落スタイルの名前)を含む<ParagraphStyle>エレメントを参照します。この場合、段落スタイルはIDMLパッケージの中のResourcesフォルダーの中のStyles.htmlファイルで定義されます。
  1. <IndexOptions TitleStyle="ParagraphStyle\IndexTitle" .../>
次の例はエレメントを参照するためにエレメントの「Self」属性を使用する相互参照を示しています。上に示されるように、値「ucb」は<Story>エレメントの一意な識別子です。
  1. <TextFrame ParentStory="ucb" .../>
  • IDMLファイルは前方への参照を含むことができます。(すなわち、IDMLファイルにまだ含まれていないオブジェクトの参照)
  • 参照はIDMLパッケージ、あるいは単一のIDMLファイル内でのみ有効です。 1個のパッケージ(またはファイル)から別のものへの参照は許されていません。
Personal tools