このトピックでは、Windows Internet Explorer 9 の時点で非推奨になった機能である VML について説明します。 VML に依存する Web ページとアプリケーションは、SVG またはその他の広くサポートされている規格に移行する必要があります。
Note
2011 年 12 月の時点で、このトピックはアーカイブされています。 その結果、これはアクティブに維持されなくなります。 詳細については、「アーカイブ済みコンテンツ」を参照してください。 Windows Internet Explorer の現行バージョンに関する情報、推奨事項、ガイダンスの詳細については、「Internet Explorer デベロッパー センター」を参照してください。
Contents
はじめに
この提案では、次の表に一覧表示されている少数の基本型を使用します。
| Type | 要素 | 基本的な表現 | 説明 |
|---|---|---|---|
| boolean | 1 ビット | ブール値: true または false。 | |
| fraction | 数値 2 6 | 2 6 (65536) でスケーリングされ、符号付き整数として格納された数値。 | |
| ordinate | 30 ビット整数プラス記号 | 座標の一部 (パス内など)。座標によって定義された値。 | |
| length | EMU | 線の幅やフォントのサイズなどの物理的な長さ。 | |
| メジャー | EMU または数値 2 6 | 物理的な長さ (デバイス ピクセルの数を含む) か、または他の何らかの数量の fraction のどちらか。 | |
| angle | 度 2 6 | 角度。正は時計回りです。 | |
| color | c | complex | 色を派生できるようにする要素。 |
| font | font | complex | フォントの説明。 |
| ビットマップ | ビットマップ | href | 外部の画像ファイルへの参照。 |
| vector | v | complex | ベクター パスの説明 |
"基本的な表現" は、この提案で準拠する実装を維持するために必要な最も精度の高い表現です。実装でデータを必要な精度で表すことができない場合、そのデータは失われます。 color 型、font 型、vector 型は、ある意味でそれ自体が構造を持つ要素に対応しており、基本型ではありません。ただし、この提案内では、それらを基本型として扱うことが好都合です。
複合以外の各基本型には、同じ名前の関連付けられた要素があります。 これらの要素名は予約されており、拡張機能内の他のどの目的にも使用できません (その使用が onview="skip" 拡張要素内にある場合でも)。 このため、不明な XML を検出した実装では、それらの値が "type" 要素で囲まれている限り、その不明な XML の効率的な内部ストレージを提供できます。
<new:tag>1.578</new:tag>
<new:tag><v:fraction>1.578</v:fraction></new:tag>
この最初の例では、文字列 "1.578" を一連の文字として格納する必要があります (実装では、それが文字列か数値かどうかを認識できません)。2 番目の例では、fraction 要素によってその内容が数値であることが示されているため、それを精度の高い fraction 表現に変換できます。
複合型 (bitmap を含む) には、その値を区切るために使用される関連付けられた要素名があります。 これにより、より複雑な解析タスクが一意の要素タグに確実に関連付けられるため、解析が簡略化されます。
boolean
boolean
<!entity % boolean "#pcdata" -- or nmtoken in an attribute -- >
ブール値は、フラグの状態を示すキーワードとして表されます。 次のキーワードが定義されています。
| true の値 | false の値 |
|---|---|
| true | false |
| はい | いいえ |
| on | オフ |
| t | f |
| 1 | 0 |
実装では、どの値でも書き込むことができ、すべての値を認識する必要があります。 実装では、値をある表現から別の表現に自由に変更できます。
fraction
fraction
<!entity % fraction "#pcdata" -- or nmtoken in an attribute -- >
この提案内の数値 (つまり、無次元量の値) はすべて、2 6 (65536) でスケーリングすることによって整数として格納できます。 数値は、サフィックス f を付けたこの形式か、またはサフィックスのない 10 進数のどちらかで指定できます。 そのため、次の仮定の要素は同じ値を表します。
<fillwidth>0.25</fillwidth>
<fillwidth>16384f</fillwidth>
f サフィックスが付いた数量は整数である必要があります。小数は許可されません。 最終的な整数は、32 ビットの 2 の補数の符号付き数値として表現できる必要があります。そのため、この表現の有効な範囲は 32768 です (実際には、32768 未満で、かつ -32768 以上)。
f 値として表された値を保持するには、準拠する実装が必要です。 10 進数として表された値は f 値に変換し、そのように格納できます。 アプリケーションは、内部で生成されれた値を任意の適切な単位で記録できます。ただし、既存のドキュメントから読み込まれた値は、完全な元の精度に維持するか、または f 値に変換する必要があります。
実装では、これを行うことができない場合、そのデータが失われる可能性があることをユーザーに警告する必要があります。 (外部で生成されたデータが最初に検出されたときは、このような警告を 1 回発行することが許容されます)。
10 進数値が f 形式に変換されるとき、実装では、任意の算術丸めモードを使用できます。ただし、整数を f 形式に正確に変換する必要があります。 実装では、負の無限大に丸めることによって変換することと、その変換を常に正確にすることをお勧めします。
ordinate
ordinate
<!entity % ordinate "#pcdata" -- or nmtoken in an attribute -- >
座標によって確立される座標系の単位は、ordinate と呼ばれる、ある意味名目的な型です。 これは長さの尺度ですが、その座標によって確立される四角形に関連してのみ使用されます。 型 ordinate の値はすべて、その座標の w と h の値と、出力デバイス上の実際の測定値を確立するために使用される最終的な比率によってスケーリングされます。
準拠する実装では、最大 30 ビット プラス記号 (つまり、32 ビット符号付き整数ではなく、31 ビット符号付き整数) の ordinate 値を処理できる必要があります。 ただし、実装では、パスや同様の要素に対して約 16 ビットの精度を持つ座標を生成しようと試みることをお勧めします。 これにより、準拠していない実装でアンダーフローまたはオーバーフローのどちらかが発生する確率が最小限に抑えられます。
ordinate 値は、常に整数です。 型 ordinate の値に小数点を含めることはできません。 型 ordinate の値には単位指定子を追加できません。
length
length
<!entity % length "#pcdata" -- or nmtoken in an attribute -- >
length は実際の測定値であるか、またはデバイス ピクセル単位の測定値である場合もあります。 実装では、デバイス ピクセル (px) の使用を回避することをお勧めします。
length では、標準の CSS1 単位修飾子がすべて許可されます。 さらに、修飾子 emu も使用できます。 この修飾子は、コンピューター グラフィックスで広く使用されている測定量の共通分母である EMU (English Metric Unit) という単位を示します。 EMU は インチ/914400 です。つまり、1 インチあたり 914400 EMU があります。 次の表は、一般に使用されるいくつかの単位での EMU の数の一覧を示しています。
| EMU の数 | 1 インチあたりの数 | 1 ミリメートルあたりの数 | 説明 |
|---|---|---|---|
| 360 | 0.01 | Win32 HIMETRIC | |
| 12700 | 72 | "ポイント" | |
| 635 | 1440 | Win32 TWIP | |
| 762 | 1200 | 高解像度プリンター |
EMU の小数は許可されません。 測定値はすべて、32 ビット符号付き整数の EMU として表現できる必要があります。これにより、測定値の大きさが 2348 インチ (約 59 メートルまたは 65 ヤード) に制限されます。 測定値は常に、名目上は画面またはページ サイズの出力デバイス上のレンダリングのサイズを指すため、常にこの範囲内に存在します。
ただし、この表現は実際の測定値に対しては不適切であり、これらが (たとえば、パスの実際のサイズを記録するために) 記録される場合は、他の何らかの表現を使用する必要があることに注意してください。
EMU の正確な数である値を保持するには、準拠する実装が必要です。 他のどの方法で表された値も EMU 値に変換し、そのように格納できます。 アプリケーションは、内部で生成された値を任意の適切な単位で記録できます。ただし、既存のドキュメントから読み込まれた値は、完全な元の精度に維持するか、または EMU 値に変換する必要があります。
実装では、これを行うことができない場合、そのデータが失われる可能性があることをユーザーに警告する必要があります。 (外部で生成されたデータが最初に検出されたときは、このような警告を 1 回発行することが許容されます)。
実際には、物理的な長さは、この提案内の比較的少ない測定値に使用されています。 通常、最も重要なデータはパス データであり、これは、座標によって (図形ごとに) 定義された座標系でエンコードされます。
代替表現
HTML の標準の length 表現は、CSS1 によって定義されます。 相対単位 (ピクセルを除く) は、この提案で長さが使用されるコンテキストでは意味がないため、使用してはいけません。 ドキュメントに意図された (ターゲット) ピクセル サイズが記録される場合は、これによりピクセルの EMU への変換が定義されます。それ以外の場合は、CSS1 によって定義された 90 dpi の既定値を使用する必要があります。
emu を除き、小数部として任意の値を指定できます。 10 進数値が EMU に変換されるとき、実装では、任意の算術丸めモードを使用できます。 (オーサリング アプリケーションで特定の結果を保証する唯一の方法は、それを emu で指定することです)。
length 値で単位指定子が指定されていない場合、実装では emu と見なす必要があります。
measure
measure
<!entity % measure "#pcdata" -- or nmtoken in an attribute -- >
measure は、length または fraction のどちらかである可能性がある数量です。 これは、他の何らかの数量の物理的な測定値またはパーセンテージのどちらかであることが多い HTML と CSS の length 測定値によく似ています。 単位指定子が指定されていない場合は、その値を小数部と見なす必要があります (そのため、この動作は length からではなく、fraction から継承されます)。
length とは異なり、ピクセル値にはコンテキストで定義される意味があるため、通常 emu への変換は不適切です。 実装で保持する必要がある考えられる基本的な表現として、次の 3 つがあります (つまり、ある表現を、情報を失うことなく別の表現に変換することはできません)。
- 小数の値は、fraction 形式 ("f" 値) で保持する必要があります。
- 物理的な長さは、EMU で保持する必要があります。
- ピクセル値は、ピクセルの整数として保持する必要があります。
ピクセルの小数は許可されません。
代替表現
fraction と length はどちらも、すべての代替表現が許可されます。
angle
angle
<!entity % angle "#pcdata" -- or nmtoken in an attribute -- >
angle の基本的な表現は、度数に 2 6 (65536) を掛けた値であり、整数として格納されます。 座標空間が反転される (正の y 軸が下向きになる) ため、時計回りの角度が正です。 このような値の完全な精度を保持するには、準拠する実装が必要です。
実装では、角度として任意の範囲を使用でき、角度を (たとえば、-180 から +180 に、または 0 から 360 に) 正規化できます。 実装で一貫性を保持する必要はありませんが、angle の整数表現が 32 ビット符号付き整数の範囲を超えてはいけません。
サフィックス fd は、angle のこの表現 (小数の度) を識別するために使用されます。 これは、無次元の fraction の f サフィックスとは区別されることに注意してください (ただし、これをサポートするために同じ算術演算を使用できます)。 角度の値の既定値は単純な度 (つまり、スケーリングされていない値) です。 これはまた、サフィックス " " (度の記号) で通知することもできます。ただし、これの使用はドキュメントのエンコードが適切かどうかに依存するため、度を示すためにサフィックス deg も定義されています。 可能性のあるサフィックスの完全なセットは次のとおりです。
| 敬称 | 変換係数 | コメント |
|---|---|---|
| fd | 1 | 高精度な内部表現 |
| なし、deg | 65536 | 角 |
| rad | 65536pi/180 | Radians |
代替表現
スケーリング変換には、45 の奇数倍での不連続性があります。 そのため、不正確な数量の変換を適切に定義することがきわめて重要です。 このため、変換の算術演算は、負の無限大に向けて丸めるように定義されます。
これは一部の実装では保証することが困難か、または不可能である場合があるため、次の使用がレベル 3 の機能として定義されています。
- 何らかの小数の度の値。
- 何らかのラジアン値。
そのため、値で修飾された fd と修飾されていない整数値、または整数値で修飾された deg は、準拠するレベル 0 の実装で正確に処理する必要があります。その他の値の場合は必要ありません。 すべての実装で、小数の度の値からスケーリングされた (fd) 度の値への変換を正確に処理することを強くお勧めします。 これは、浮動小数点のサポートなしで行うことができます。
変換に関するより厳密な要件では、fd が f から区別されます。
色
c
<!element c %color;>
色は、最新のコンピューター グラフィックスのきわめて重要な部分です。 この提案では、固定色を指定するための確立された方法を使用します。 ただし、図の中の色が単純な静的な色であることはめったにありません。これらは、多くの場合、図の中の他の要素から派生しています。 これらの情報の多くはきめめてアプリケーション固有であるため、この提案では、このような動作を指定するために、次の 2 つの非常に基本的なメカニズムを示します。
- 色は、同じ図形内の別の色から派生している可能性があります。
- 色を派生または変更するために、少数の算術演算が定義されています。
プロトタイプ図形メカニズムは、継承できる色からプロトタイプを定義できるようにすることで、これを補完します。
color
<!entity % color "( %color-unit; | pure | %color.adjustment; )*">
color 値は、CSS1 の色定義のスーパーセットです。 これらの拡張機能を使用すると、RGB の color 値を図形内の他の色か、または CSS1 を使用して定義されている全体的な配色から決定できます。
要素の値が色として定義されている場合は、要素の "内容" によって、対応する RGB 色に対する算術演算で必要に応じて変更された 1 つの色トークンにより color 値が定義されます。
色の単位
色トークンの完全なセットは、HTML、CSS1、この提案などのさまざまなソースから取得されます。 これらは、CSS1 の表記または XML リンクに対して定義されている XPointer の表記を使用して、次のように定義されます。
XPointer の定義では、場所ソースは color 値が含まれている要素であり、その式は、すべての基本プロトタイプ要素が図形とマージされているかのように図形の要素セット全体を示します。 対応する要素が存在しない場合は、その要素の既定値が代わりに使用されます。
| 色 | 定義 | Level | 説明 |
|---|---|---|---|
| name | 以下を参照してください | 0 | HTML の色の名前。下の表に一覧表示されています。 |
| #rr'gg'bb' | #rr'gg'bb' | 0 | それぞれ 16 進数 2 桁を使用して表された 0-255 の範囲の値を使用する標準の CSS1/sRGB の色表現。 |
| #rgb | #rrggbb | 1 | 16 進数 3 桁のみを使用する短縮された CSS1 の形式。 |
| rgb(r,g,b) | #(r)(g)(b) | 1 | CSS1 の rgb 形式。rgb 値の各要素は、CSS1 で定義されているとおりに変換されます。 |
| fill | ancestor(1,shape) child(1, fill) child(1, color) |
1 | 図形の塗りつぶしの前景色。 |
| fillBack | ancestor(1,shape) child(1, fill) child(1, back) child(1, color) |
1 | 図形の塗りつぶしの背景色。 |
| line | ancestor(1,shape) child(1, line) child(1, color) |
1 | 図形の線の前景色。 |
| lineBack | ancestor(1,shape) child(1, line) child(1,back) child(1, color) |
1 | 図形の線の背景色。 |
| lineOrFill | line, fill | 1 | 既定で設定されていない場合は、線の値。それ以外の場合は、塗りつぶしの値。 これにより、実質的には図形の端にある色が返されます。 |
| fillThenLine | fill, line | 1 | 既定で設定されていない場合は、塗りつぶしの値。それ以外の場合は、線の値。 これにより、実質的にはメインの図形の色が返されます (図形が塗りつぶされていない場合、結果は線の色になります)。 |
| 影付き | ancestor(1,shape) child(1, shadow) child(1, color) |
2 | 影の色 (これはレベル 2 の機能です)。 |
| scheme | 以下を参照してください | 1 | ドキュメントに対して定義されているスキームのスキームの色。下を参照してください。 |
| scheme(index) | 以下を参照してください | 1 | スキームの色 index。0 から始まります。下を参照してください。 |
| this | 暗黙的に指定 | 2 | 操作 (パスの塗りつぶしまたは描画) は他の何らかの方法で (たとえば、ビットマップとして) 定義され、色は暗黙的に指定されている色の "変更" を指定します。 |
| palette(index) | 暗黙的に指定 | 3 | ビットマップ カラー テーブル内の 1 つのエントリだけが識別される点を除き、this と同様に動作します。 明示的に指定されている場合にのみ許可されます。 |
| なし | - | 2 | 色が存在しないことを示します。色を使用する描画操作を取り消すために使用できます。 |
| システム | 以下を参照してください | 3 | システム ユーザー インターフェイスによって定義された色。 |
この color を使用すると、color 値で、他の何らかの方法で派生した色の変更を指定できます。特に、ビットマップ内のすべての色に対して 1 つの操作を指定できます。 palette(index) の色は、パレットでマップされたビットマップ内の特定のエントリを識別します。 this の使用は、このようなビットマップ内で透過的と見なす必要があるカラー テーブル エントリを記録するためにのみ定義されています。
color 値の定義では、直接的にも間接的にも、それ自体を参照してはいけません。 このような定義が検出された場合は、未定義の値を実装で黒色として扱うことをお勧めしますが、これは必須ではありません。
HTML の色
HTML では、次の 16 個の色の名前が定義されています。
色の名前と sRGB 値

黒色 = "#000000"

緑色 = "#008000"

銀色 = "#C0C0C0"

ライム色 = "#00FF00"

灰色 = "#808080"

オリーブ色 = "#808000"

白色 = "#FFFFFF"

黄色 = "#FFFF00"

栗色 = "#800000"

濃紺色 = "#000080"

赤色 = "#FF0000"

青色 = "#0000FF"

紫色 = "#800080"

青緑色 = "#008080"

赤紫色 = "#FF00FF"

水色 = "#00FFFF"
スキームの色
スキームによって参照されるスキームの色は、"テーマの配色" という name 属性を持つ meta タグを使用してドキュメント レベルで定義されます。
<meta name="Theme Color Scheme"
content="rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb, rrggbb">
このタグを使用すると、最大 8 つのスキームの色を定義できます。 未定義の色は、既定で黒色に設定する必要があります。 スキームの色を使用すると、テーマの配色の内容を変更するだけで、完全なドキュメントに使用される配色を変更できます。 さまざまなオーサリング アプリケーションからインポートされたグラフィックスでのスキームの色の一貫性のある使用を保証するために、次の解釈が定義されています。 "使用状況" は目的の簡単な説明であり、"説明" 列は追加の詳細を提供します。
| インデックス | 名前 | 使用法 | 説明 |
|---|---|---|---|
| 0 | scheme.background | 背景 | グラフィックの背景に使用される色 (また、ページ全体に対して使用されることも多い)。 |
| 1 | scheme.text | テキストと線 | 図形に添付されたテキストの色と、標準の線の色。 |
| 2 | scheme.shadow | Shadows | 標準の影の色。通常は、図形の影に使用される色。 |
| 3 | scheme.title | タイトルのテキスト | 見出しまたはタイトル テキストに使用する色。 |
| 4 | scheme.fill | 塗りつぶし | 標準の塗りつぶしの色。通常は、図形を塗りつぶすために使用される色。 |
| 5 | scheme.accent | アクセント | グラフィックの重要な要素を強調するために使用される、通常の "強調表示" の色。 |
| 6 | scheme.hyperlink | アクセントとハイパーリンク | ハイパーリンクに使用される強調表示の色。 色が他の情報へのリンクを示す他の目的に使用される場合があります。 |
| 7 | scheme.followed | アクセントと後に続くハイパーリンク | 後に続くハイパーリンクの強調表示の色。また、"逆方向" リンクにも適しています。 |
スキームの色は、名前またはインデックスのどちらでも参照できます。そのため、scheme.fill と scheme(4) は同じ色です。
色が指定されていない場合、既定のスキームにスキームの色は含まれません。 指定されていない塗りつぶしの色は、スキームの色 4 の色には関係なく、常に白色として解釈する必要があります。 "アクセント" の色は背景 (0) と塗りつぶし (4) の両方の色とコントラストを付ける必要があり、テキストとタイトル テキストの色は同じプロパティを持っている必要があります。 1 つの標準的な手法として、アクセントに色を付け、標準テキストには色を付けない (通常は黒色または白色) 方法があります。
システム カラー
アプリケーションでは、グラフィックス内のオペレーティング システムの設定に基づいて色を記録する場合があります。 通常、これらは一時的なものであり、書き出す必要はありません。システム カラーの定義は、これをサポートするためにのみ存在します。 システム カラーは、新しい名前空間内に適切なタグを定義し、その要素の内容に適切な情報を挿入することによって導入されます。
この提案では、winuser.h ヘッダー ファイルで定義されている Windows ユーザー インターフェイスの色をエンコードする次のようなタグを定義します。
win.color
<!element win.color #pcdata>
この要素の内容は、winuser.h の関連する COLOR_ 定義の値が含まれている 1 つの整数です。 同様の手法は、システムまたはアプリケーション固有のすべての色の指定に採用できます。 この機能は、下位互換性のためにのみ使用することを強くお勧めします。
純粋な色
pure
<!elementpure empty>
color 値に要素 <pure/> が現れた場合、それは、色をディザー パターンで近似するべきではないことを示すヒントです。 これはレベル 1 の機能であり、準拠する実装がこれに従う必要はありません。 この指定は、小さなフィーチャー (線など) がディザリングされた色による不適切なエイリアシングを発生させる可能性がある、中程度の解像度のデバイス (ビデオ ディスプレイなど) に表示されるグラフィックスにとって重要です。 通常は、完全に飽和したいくつかの色を除くすべての色をディザリングするプリンターなどのデバイスの場合、ディザリングには通常、この問題を回避できるだけの十分な細かさがあります。
色の調整
基本色は、RGB 値に対する算術演算で調整できます。 これらの演算は、color 値内の追加の要素を使用して定義されます。 このような調整は、他の要素から派生した色に適用される場合にのみ役立ちます。 このような調整を固定の color 値に対して指定することは有効です。ただし、実装では、これを対応する RGB 値に減らし、それを元の値の代わりに格納できます。
このセクションで説明されている色の調整の機能はすべて、レベル 1 の機能です。
color.adjustment
<!entity % color.adjustment -- change to make to a color --
"( %color.op; )?, ( %color.adj; )*"
>
color.op
<!entity % color.op -- arithmetic operation --
"( darken | lighten | add | subtract | reverseSubtract |
blackWhite )"
>
<!element darken %color.parameter;>
<!element lighten %color.parameter;>
<!element add %color.parameter;>
<!element subtract %color.parameter;>
<!element reversesubtract %color.parameter;>
<!element blackwhite %color.parameter;>
color.parameter
<!entity % color.parameter "#pcdata" >
color.adj
<!entity % color.adj -- additional adjustment to color --
"invert | invert128 | gray"
>
<!element invert empty>
<!element INVERT128 empty>
<!element gray empty>
最初の 6 つの演算のパラメーターは、0 から 255 までの範囲にある 1 つの整数数値です。 この調整は、3x8 ビットの RGB 値に対して次のように実行されます。
<gray/> が指定されている場合、RGB 値は yyy で置き換えられます。ここで、y は、ITU-r BT.709 に従って sRGB 値から計算された輝度 (y') 値です。 この計算は次のとおりです。
y = 0 2125xr + 0 7154xg + 0 0721xbcolor.op の変更が指定されている場合、各成分は、次の表に従って個別に調整されます。 c は成分値であり、p は color.parameter 値です。
操作 式 darken c := cxp/255 lighten c := 255 - (255-c)xp/255 add c := c + p subtract c := c - p reversesubtract c := p - c blackwhite if c < p thenc := 0elsec := 255 いずれの場合も、計算された成分値 c が 255 を超える場合は 255 が使用され、0 より小さい場合は 0 が使用されます。
<INVERT128/> が指定されている場合は、各成分が 128 より小さいかどうかに応じて、値 128 が成分から減算されるか、または成分に加算されます。
if c < 128 then c := c + 128 else c := c - 128<invert/> が指定されている場合、各成分は、255 からその成分の値を引いた値で置き換えられます。
c := 255-c
font
font
<!element font any>
<!attlist font
style cdata #implied>
フォントは、CSS1 セクション 5.2 (フォント プロパティ) で定義されている style 属性を使用して識別されます。 font 要素の本体は、現時点では未定義ですが、標準のフォント情報をエンコードするために将来使用される可能性があります。 この提案の初期の実装では、これらの情報を保持する必要がありますが、解釈は必要ありません。
将来、不一致のフォント情報 (ダウンロード可能なフォントまたは共有されているフォント リソース) に対するサポートが追加されることが予測されます。 これは、font 要素の内容に含まれている XML リンク要素によって行われるため、初期の実装との下位互換性が保証されます。
ビットマップ
bitmap
<!element bitmap empty>
<!attlist bitmap
XML-link cdata #fixed "simple"
href cdata #REQUIRED
title cdata #implied
behavior cdata #implied
show (embed|replace|new) #fixed "embed"
inline (true|false) #fixed "true"
actuate (auto|user) #fixed "auto"
>
bitmap 要素を使用すると、不一致の画像リソース (通常はビットマップ) への参照をグラフィックに含めることができます。
bitmap はレベル 1 の機能です。
behavior 属性は、編集アプリケーションでのビットマップの処理方法を示すために使用できます。 この値には、次のトークンのどちらかまたは両方を指定できます。
| トークン | 説明 |
|---|---|
| separate | ビットマップを、ドキュメントの不可欠な部分と見なすべきではない個別のエンティティとしてマークします。 このビットマップをドキュメントと共に保持するべきではありません。 ドキュメントがコピーされてもビットマップをコピーするべきではなく、ドキュメントが移動されてもビットマップを一緒に移動するべきではありません。 |
| 変更前 | title 属性によって、ビットマップの元の場所が URL として識別されます。そうでない場合、タイトルの意味は指定されません。 |
これらの値はどちらも、予期される動作についてのヒントです。 separate オプションは、href によって参照されるデータの動作を示します。 separate と original の両方が指定されている場合、アプリケーションは href URI を無視し、元のデータからビットマップを再生成することが予期されます。 original のみが指定されている場合、アプリケーションは href URI を使用してビットマップを見つけることが予期されますが、その再生成のオプションをユーザーに提供することもできます。
href URI と title 属性を同じ (字句) 値にすることは有効です。これは、参照されるビットマップがドキュメント "と一緒に格納" されていない場合に適しています。 ビットマップの (参照している図形が削除された場合には削除される可能性がある) ドキュメントの独自のコピーには href を使用し、共有コピーを示すには title を使用することが想定されています (ただし、必須ではありません)。 そのため、両方に同じ値が含まれている場合、ドキュメント固有のコピーは存在しません。
アプリケーションが XML データの実際のストレージ モデルに適合しない場合は、このヒントを無視できます。
画像ファイルの形式
この提案のコンテキスト内では、外部データは常にビットマップか、またはビットマップを生成するために使用されるファイルのどちらかです。 レンダー レベル 0 では、外部のビットマップ形式をサポートする必要はありません。パスは単色でしか塗りつぶすことができません。 レンダー レベル 1 の塗りつぶしの完全なセットをレンダリングするには、ビットマップをサポートする必要があります。 レンダー レベル 1 には、次の形式 (のみ) が含まれています。
- JFIF。つまり、JFIF ヘッダー (これは SOI マーカーの後の特定の APP0 マーカーと見なすことができます) でファイル内に埋め込まれ、IJG v6 コードでサポートされている JPEG 形式の範囲 (のみ) を含む ISO/IEC 10918 形式のデータ。
- PNG バージョン 1.0 仕様で定義されている PNG。
レンダー レベル 2 には、次のサポートも含まれています。
- 1987 年に CompuServ によって公開された GIF 仕様 (通常は "GIF87a" と呼ばれます) で定義されている GIF。 また、GIF89a も、ユーザー入力または遅延時間の要件がないときは、グラフィックス コントロール拡張機能以外、ビットマップを表示するために解釈が必要な拡張ブロックをデータに含めてはいけないという制限に従って、このレベルでサポートする必要があります。 これにより、コメントを含めることができますが、プレーンテキスト拡張機能は許可されません。 アプリケーションはアプリケーション (0x21、0xFF) 拡張機能を挿入できますが、この提案の用語を使用すると、これらにはデータの (レンダリングではなく) 編集のみを含める必要があります。
グラフィックで使用されるその他のすべてのデータ形式では、グラフィックが少なくとも編集レベル 3 で、かつ場合によってはレンダリング レベル 3 (グラフィックをレンダリングするためにそのデータが必要な場合) に強制的に設定されます。 アプリケーションは、サポートしている形式を公開することが推奨されます。 たとえば、Microsoft Office は次の追加の形式をネイティブにサポートしているため、この形式で編集データを書き込むことができます。
- WMF -- Windows メタファイル (Win 3.1 形式)
- EMF -- Windows "拡張" メタファイル (Win32 形式)
- PICT -- Mac OS QuickDraw PICT ファイル (すべてのバージョン、ただし QuickTime レコードやその他の拡張機能はなし)
- BMP -- Windows ビットマップ ファイル形式、"os/2" (BITMAPCORE)、BITMAPINFO、BITMAPV4、BITMAPV5 の各形式
ベクター
v
<!element v "( #pcdata | p )*">
ベクター グラフィックス パスは、pcdata としてエンコードされます。 v 要素の内容は混在しており、必要に応じて p 要素でパラメーター化されたベクター パスの説明が含まれています。
トップに戻る