挿入

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ユーザーマニュアル > メニューコマンド > 編集メニュー >

挿入

挿入コマンドを選択、またはマウスオーバーすると、以下に説明されるような3つのコマンドが表示されます:

 

ファイルパスの挿入
XInclude の挿入
エンコードされた外部ファイルの挿入

 

ファイルパスの挿入

ファイルパスコマンドは、テキストビューまたはグリッドビューで表示されている、あらゆる種類のドキュメントで使用することができます。この機能を使用することで、カーソルがある位置にファイルのパスを挿入することができます。このコマンドをクリックすると、以下のスクリーンショットに示されるダイアログが表示され、目的のファイルを選択することができます。

EditInsertFilePath

目的のファイルは、以下にある方法から選択することができます: (i) ファイル、URL、またはグローバルリソースを参照( 参照 ボタンを使用)、(ii) ウィンドウから既に開かれているファイルを選択(ウィンドウボタンを使用)。選択をが終わると、「OK」 をクリックします。選択されたファイルのパスが、アクティブなドキュメントのカーソル位置に挿入されます。

 

XInclude の挿入

XInclude コマンドは、テキストビューまたはグリッドビューで使用することができ、新たな XInclude 要素を、テキストビューにてカーソルが選択している箇所、またはテキストビューやグリッドビューにて選択されているアイテムの直前に挿入することができます。グリッドビューにて選択されているのが属性の場合、XInclude 要素は、属性の後か、属性の親要素が持っている最初の子要素の前に挿入されます。このコマンドを選択すると、XInclude ダイアログが表示されます(以下のスクリーンショットを参照)。

 

dlg_xinclude

インクルードされる XML ファイルを href テキストボックスに入力します(または、テキストボックスの右側にある ... (参照)ボタンをクリックすることで、ファイルの参照を行うこともできます)。ファイル名が href 属性の値として、XML ドキュメント内に入力されます。XInclude (xi:include) 要素の parse、xpointer や encoding 属性、そして xi:include の fallback 子要素も、このダイアログにて挿入することができます。対応するチェックボックスにチェックを入れ、必要な値を選択/入力してください。fallback 要素の場合は、チェックボックスにチェックを入れることで、空要素を挿入することができます。fallback 要素のコンテンツは、編集ビューにて追加する必要があります。

 

parse 属性により、インクルードされるドキュメントが XML またはテキストとして解析(パース)されるかが決定されます(デフォルトでは XML という値がセットされており、指定を行う必要はありません)。xpointer 属性は、href 属性により指定されるドキュメント内フラグメント(つまり、インクルードされるフラグメント)を特定します。encoding 属性ではインクルードされるドキュメントのエンコーディングが指定され、XMLSpy により、インクルードするドキュメントの内容がインクルード元のドキュメントエンコーディングに合う形で変換されます。インクルードされるドキュメントが見つからない場合は、xi:include 要素が fallback 子要素により置換えられます。

 

XInclude により2つの XML ドキュメントをインクルードする XML ドキュメントのサンプルを以下に示します:

 

<?xml version="1.0" encoding="UTF-16"?>

<AddressBook xsi:schemaLocation="http://www.altova.com/sv/myaddresses AddressBook.xsd"

 xmlns="http://www.altova.com/stylevision/tutorials/myaddresses"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xmlns:xi="http://www.w3.org/2001/XInclude">

 <xi:include href="BusinessAddressBook.xml"/>

 <xi:include href="PersonalAddressBook.xml"/>

</AddressBook>

 

XML ドキュメントがパースされると、上の例で2つある XInclude 要素が、href 属性により指定されたファイルの内容に置換えられます。

 

 

 

xml:base

XMLSpy の XML バリデーターにより XML ドキュメントが読み取られ、XInclude 名前空間内の include 要素(これ以降は xi:include と表記)が発見されると、この要素 (xi:include) を、xi:include 要素の href 属性により指定された XML ドキュメントに置換えます。インクルードされた XML ドキュメントのドキュメント要素(ルート要素)や、XPointer により指定された要素にも xml:base 属性は含まれ、インクルードされたベース URI を保持します。(インクルードされた XML やツリーフラグメントを含む)結果 XML ドキュメントが、スキーマに従う形で妥当でなければならない場合、インクルードされたドキュメントのドキュメント要素(ルート要素)やツリーフラグメントのトップレベル要素を、xml:base 属性を許可するコンテンツモデルにより作成する必要があります。スキーマにより、xml:base 属性がこの要素に対して認められない場合、ドキュメントは妥当でないと評価されます。XMLSpy のスキーマビューにて要素コンテンツモデルの xml:base 属性を定義する方法は、ドキュメンテーションのスキーマビューセクション、 xml:プレフィックス属性 にて記述されます。

 

XPointers

XMLSpy では XInclude 内における XPointer がサポートされます。関連する W3C 勧告は、XPointer Framework ならびに XPointer element() スキーマの2つです。XInclude 要素内の XPointer により、XML ドキュメント全体の代わりに、XML ドキュメント内部でインクルードする箇所を特定することができます。XPointer は、以下にあるように、XInclude 要素内部で使用されます::

 

 <xi:include href="PersonalAddressBook.xml" xpointer="element(usa)"/>

 <xi:include href="BusinessAddressBook.xml" xpointer="element(/1/1)"/>

 <xi:include href="BobsAddressBook.xml" xpointer="element(usa/3/1)"/>

 <xi:include href="PatsAddressBook.xml" xpointer="element(usa)element(/1/1)"/>

 

XPointer の element() スキーマでは、NCName や子シーケンスを使用することができます。

 

上の例にある最初の xi:include 要素の xpointer 属性では usa という NCName を伴った要素スキーマが使用されています。XPointer Framework に従うと、この NCName により usa という ID を持つ要素が特定されます。
2つ目の xi:include では、element(/1/1) という値が xpointer 属性で使用されています。最初のステップでは、ドキュメントにある最初の子要素(つまりドキュメントが整形式であえば、ドキュメント要素)が特定されます。次のステップでは、最初のステップで特定された要素から見た最初の子要素が特定され、結果としてドキュメント要素にある最初の子要素がインクルードされます。
3番目の xi:include にある xpointer 属性では、NCName と子シーケンスの両方が使用されています。XPointer により、usa という ID を持つ要素の3番目の子要素、その子要素から見た最初の子要素がインクルードされます。.
最初に使用した XPointer が期待通りに動作するか分からない場合、4番目の例として示されている xpointer="element(usa)element(/1/1)" という書式を使用することもできます。この方法では、たとえ usa という ID を持つ要素が存在しない場合でも、ドキュメント要素の最初の子要素が選択されます。これ以外にもバックアップとなる式を追加することができます。各 XPointer は、空白スペース以外で分けることはできず、以下のような書式に従う必要があります: xpointer="element(usa)element(addresses/1) element(/1/1)"。

 

メモ:element() スキーマは qualified name でサポートされておらず、名前空間バインディングコンテキストは、element() スキーマにて使用されません。

 

 

エンコードされた外部ファイルの挿入

エンコードされた外部ファイルコマンドは、テキストビューならびにグリッドビューで使用することができます。このコマンドにより、Base-16 または Base-64 テキスト形式でエンコードされた外部ファイルを、XML ドキュメント内部の任意の箇所に追加することができます。この機能により外部ファイルを XML ドキュメント内に埋め込むことができます。

 

挿入 | エンコードされた外部ファイル」コマンドを選択すると、エンコードされた外部ファイルの挿入を行うためのダイアログが表示されます(以下のスクリーンショットを参照)。

InsEncodedExtFile

埋込みを行う外部ファイルを参照または直接入力します。Base-16 または Base-64 のエンコーディングを選択してください。エンコードされたテキストを、要素の中に含めて表示する場合、要素を作成チェックボックスにチェックを入れて、作成する要素名をテキストボックスに入力します。要素を作成チェックボックスにチェックが入っていない場合、エンコードされたテキストは、カーソルがある位置に直接挿入されます。

 

「OK」 をクリックすると、選択したファイルをエンコードしたテキストが、(もしそう指定されていれば)要素に含まれる形でカーソル位置に挿入されます。

 

<img ext="png" encoding="xs:base64Binary">

  iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/

  //+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U

  g9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC

</img>

 

上の表示は、PNG イメージファイルをテキストにエンコードしたものです。img 要素がエンコードされたテキストの回りに作成されます。

 


(C) 2019 Altova GmbH