次の方法で共有


Visual Basic における XML IntelliSense

更新 : 2008 年 7 月

Visual Basic コード エディタには、XML スキーマで定義されている要素の単語入力を補完する、XML 用の IntelliSense 機能が付属しています。XML スキーマ定義 (XSD: XML Schema Definition) ファイルをプロジェクトに追加し、スキーマの対象名前空間を Imports ステートメントを使用してインポートすると、コード エディタによって、XSD スキーマの要素が、XElement オブジェクトと XDocument オブジェクト用の IntelliSense 有効メンバ変数リストに取り込まれます。XElement オブジェクト用の IntelliSense メンバ リストを次に示します。

XML IntelliSense
Visual Basic における XML IntelliSense

Visual Basic での XML IntelliSense の有効化

Visual Basic で XML IntelliSense を有効にするには、XSD スキーマ ファイルを Visual Basic プロジェクトに追加する必要があります。また、XSD スキーマの対象名前空間を Imports ステートメントを使用してコード ファイルにインポートする必要があります。また、Visual Basic プロジェクト デザイナの [参照] ページを使用して、プロジェクト レベルの名前空間リストにスキーマの名前空間を追加することもできます。例については、「方法 : Visual Basic で XML IntelliSense を有効にする」を参照してください。詳細については、「Imports ステートメント (XML 名前空間)」および「[参照設定] ページ (プロジェクト デザイナ) (Visual Basic)」を参照してください。

既定では、Visual Basic プロジェクトの XSD スキーマ ファイルは表示されません。プロジェクトに追加する XSD ファイルを選択するには、[すべてのファイルを表示] ボタンをクリックすることが必要な場合があります。

スキーマ ファイルの生成 (スキーマの推論)

Visual Studio の XML ツールを使用して XSD スキーマを推論することにより、既存の XML ファイル用の XSD スキーマを作成できます。

  • SP1 より、XML to Schema ウィザードを使用して、1 つ以上の XML ドキュメントから推論される XML スキーマ セットを作成し、プロジェクトに追加できるようになりました。テキスト ファイル形式の XML ドキュメント、HTTP インターネット アドレスからの XML、および XML to Schema ウィザードに入力するか貼り付ける XML を任意に組み合わせて使用できます。XML to Schema ウィザードにアクセスするには、[プロジェクト] メニューの [新しい項目の追加] をクリックし、[データ] と [共通項目] のいずれかのテンプレート グループから XML to Schema テンプレートを追加します。XML スキーマ セットを推論する対象の XML ドキュメント ソースをすべて追加したら、[OK] をクリックして推論されるスキーマ セットを作成します。詳細については、「XML to Schema ウィザード」および「方法 : XML to Schema ウィザードを使用して XML スキーマ セットを作成する」を参照してください。

  • Visual Studio XML エディタを使用して XML ファイルから XSD スキーマ セットを推論することもできます。XML エディタを使用して XML スキーマ セットを作成するには、Visual Studio の XML デザイナで XML ファイルを開き、[XML] メニューの [スキーマの作成] をクリックします。作成した XSD スキーマ セットは、1 つ以上の XSD ファイルに保存し、プロジェクトに追加できます。詳細については、「方法 : Visual Basic で XML IntelliSense を有効にする」を参照してください。

スキーマが同じである必要のある複数の XML ドキュメントから、複数の異なる XSD スキーマ セットが推論される場合があることに注意してください。このようなことは、特定の要素と属性がいずれかの XML だけに存在したり、含まれている要素の順序が異なっていたりする場合に、発生する可能性があります。XSD スキーマの推論を使用するときは、推論された XSD スキーマ セットが完全で正確であることを確認する必要があります。

メンバ リスト

ピリオド (.) を入力して XElement オブジェクトまたは XDocument オブジェクトのインスタンスか、IEnumerable(Of XElement) または IEnumerable(Of XDocument) のインスタンスを区切ると、Visual Basic IntelliSense によって、使用可能なオブジェクト メンバの一覧が表示されます。この初期リストには、次に示す XML 軸プロパティを表す 3 つのオプションが含まれます。

  • < >
    使用可能な子要素の一覧を表示するには、このオプションを選択します。詳細については、XML 要素リテラル メソッドと Elements メソッドを参照してください。

  • @
    使用可能な属性の一覧を表示するには、このオプションを選択します。詳細については、「XML 軸プロパティ」を参照してください。このオプションは、XElement 型のオブジェクトに対してのみ使用できます。

  • …< >
    使用可能な子孫要素の一覧を表示するには、このオプションを選択します。詳細については、方法 : XML 子孫要素にアクセスする (Visual Basic) メソッドと Elements メソッドを参照してください。

一覧から任意の XML オプションを選択するか、入力を開始します。選択したオプションに固有の XML スキーマのメンバで、使用可能なメンバが、メンバ リストに表示されます。特定の XML 名前空間プレフィックスに関連付けられた XML 名前空間をインポートしている場合は、使用可能な XML 名前空間プレフィックスの一覧もメンバ リストに表示されます。

たとえば、次のような XSD スキーマがあるとします。

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" 
           elementFormDefault="qualified" 
           targetNamespace="http://SamplePurchaseOrder" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PurchaseOrders">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="PurchaseOrder">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Address" />
              <xs:element name="Items" />
              <xs:element name="Comment" />
            </xs:sequence>
            <xs:attribute name="PurchaseOrderNumber" type="xs:unsignedShort" use="required" />
            <xs:attribute name="OrderDate" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

この XSD スキーマで有効な XML は次のようになります。

<?xml version="1.0"?>
<PurchaseOrders xmlns="http://SamplePurchaseOrder">
  <PurchaseOrder PurchaseOrderNumber="12345" OrderDate="2000-1-1">
    <Address />
    <Items />
    <Comment />
  </PurchaseOrder>
</PurchaseOrders>

この XSD スキーマ ファイルをプロジェクトに追加し、スキーマの対象名前空間を XSD スキーマからコード ファイルまたはプロジェクトにインポートすると、Visual Basic コードの入力時に、Visual Basic IntelliSense によって、このスキーマのメンバが表示されます。XSD スキーマの対象名前空間を既定の名前空間としてインポートし、次のように入力すると、IntelliSense によって、PurchaseOrder XML 要素の使用可能な子要素の一覧が表示されます。

Dim po = <PurchaseOrder />
po.<

この一覧は、Address、Comment、および Items の各要素で構成されます。

IntelliSense リスト項目の確実性のレベル

IntelliSense で使用する XSD 型の判別は厳密ではありません。その結果として、XML IntelliSense では多くの場合、使用可能なメンバを示す展開されたリストが表示されます。IntelliSense メンバ リストから項目を選択しやすくするために、項目は、XML IntelliSense で特定のメンバに割り当てられている確実性のレベルを示すインジケータと共に表示されます。

XML IntelliSense は、XSD スキーマの特定の型を識別できる場合があります。そのような場合、その XSD 型で使用できる高い確実性がある子要素、属性、または子孫要素が表示されます。これらの項目は、チェック マークによって識別されます。

ただし、XML IntelliSense は、XSD スキーマの特定の型を識別できない場合もあります。そのような場合、プロジェクトで使用できる確実性の低い XSD スキーマの子要素、属性、または子孫要素を示す展開されたリストが表示されます。これらの項目は、疑問符によって識別されます。

参照

処理手順

方法 : Visual Basic で XML IntelliSense を有効にする

方法 : XML to Schema ウィザードを使用して XML スキーマ セットを作成する

参照

XML to Schema ウィザード

Imports ステートメント (XML 名前空間)

XML 要素リテラル

XML 属性軸プロパティ

XML 子孫軸プロパティ

[参照設定] ページ (プロジェクト デザイナ) (Visual Basic)

変更履歴

日付

履歴

理由

2008 年 7 月

「スキーマ ファイルの生成 (スキーマの推論)」に新しい XML to Schema ウィザードに関する内容を追加

SP1 機能変更