Visual Basic DTD、XDR、または XSD を使用して XML ドキュメントを検証する方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:315533
Microsoft Visual C# .NET のバージョンこの資料の参照してください。 307379.
Microsoft Visual Basic 6.0 のバージョンこの資料の参照してください。 309616.


この資料は、次の Microsoft.NET Framework クラス ライブラリ名前空間。
  • System.Xml
  • System.Xml.Schema
概要
拡張マークアップ言語 (XML) ドキュメント要素と属性を含み、アプリケーションと組織の間でデータを交換するための柔軟で強力な手段です。許容可能な構造とを XML ドキュメントのコンテンツを指定するには、ドキュメント型定義 (DTD)、Microsoft XML データの制限 (XDR) スキーマ、または XML スキーマ定義言語 (XSD) スキーマを作成できます。

Dtd は、.NET Framework で XML 文法を指定する方法は、XSD スキーマと XDR スキーマもサポートしています。

この記事では、Microsoft Visual Basic 2005年または Microsoft Visual Basic .NET での XML ドキュメント、DTD、XDR スキーマまたは XSD スキーマを適用する方法を学びます。XmlValidatingReaderクラスを使用して指定した文法に対して XML ドキュメントを検証する方法を学習します。XML 検証を最適化する方法としてメモリ内キャッシュのスキーマの検証クラスを使用する方法についても学習します。

要件

推奨ハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および必要な service pack を以下に示します。
  • Microsoft Visual Basic 2005年または Microsoft Visual Basic .NET
この資料は次のトピックに精通している事を前提としています。
  • Visual Basic 2005年または Visual Basic .NET の構文
  • 検証問題など、XML の概念

XML ドキュメントを作成します。

  1. Microsoft Visual Studio 2005年または Microsoft Visual Studio .NET を起動します。新しい XML ファイルを作成 ([ファイル] メニューの [新規作成] をポイントし、ファイル)。
  2. XML ファイルの種類を選択し、[開く] をクリックします。
  3. カタログの aproduct を表現する XML ドキュメントに、次のデータを追加します。
    <Product ProductID="123">   <ProductName>Rugby jersey</ProductName></Product>					
  4. としてファイルを保存します。 Product.xml でフォルダーができる簡単にアクセス」のコード サンプルこの資料で前提と C:\MyFolder という名前のフォルダー) にします。

DTD と XML ドキュメントへのリンクを作成します。

  1. Visual Studio 2005年または Visual Studio .NET では、 [ファイル] メニューの [新規] をポイントし、[ファイル] をクリックします。
  2. テキスト ファイルの種類を選択し、[開く] をクリックします。
  3. ファイル、XML ドキュメントの文法を分析するに、次の DTD 宣言を追加します。
    <!ELEMENT Product (ProductName)><!ATTLIST Product ProductID CDATA #REQUIRED><!ELEMENT ProductName (#PCDATA)>					
  4. としてファイルを保存します。 Product.dtd で XML ドキュメントと同じフォルダーです。
  5. Visual Studio .NET または Visual Studio 2005 で Product.xml を再度開きます。[ファイル] メニューを開いているポイントファイルをクリック。DOCTYPE ステートメントを追加 (下の"でしょうか。 xml のバージョン ="1.0"の行)、以下のよういます。これは、 XML ドキュメントを DTD ファイルに関連付けます)。
    <?xml version="1.0" encoding="utf-8" ?><!DOCTYPE Product SYSTEM "Product.dtd">					
  6. 変更後の XML ドキュメントとして保存します。ProductWithDTD.xml.

DTD を使用して検証を実行します。

  1. Visual Studio 2005年または Visual Studio .NET では、ValidateXmlUsingVB という名前の新しい Visual Basic の ConsoleApplication プロジェクトを作成します。
  2. Visual Studio 2005 または Visual Studio .NET に、 Module1.vb という名前の新しいファイルが表示されます。各論の冒頭、このファイルのとおり 2 つのImportsステートメントを追加します。
    Imports System.Xml          ' For XmlTextReader and XmlValidatingReaderImports System.Xml.Schema   ' For XmlSchemaCollection (used later)					
  3. Module1 (Main サブルーチンの開始) の前に、でisValidをという名前の次のようにブール型変数を宣言します。
    'If a validation error occurs,' you will set this flag to False ' in the validation event handler. Private isValid As Boolean = True					
  4. Main サブルーチンで、テキスト ファイルから XML ドキュメントを読み込むために XmlTextReader オブジェクトを作成します。この XML データを検証するXmlValidatingReaderオブジェクトを作成します。
    Dim r As New XmlTextReader("C:\MyFolder\ProductWithDTD.xml")Dim v As New XmlValidatingReader(r)					
  5. XmlValidatingReaderオブジェクトは、 ValidationTypeプロパティは、DTD、XDR、(スキーマ) に必要な検証の種類を示します。次のこのプロパティをDTDを設定します。
    v.ValidationType = ValidationType.DTD					
  6. 検証エラーが発生する検証イベントの検証、readergenerates 場合。(このセクションの MyValidationEventHandler サブルーチンの instep 8 を実装)、validationevent ハンドラーを登録する次のコードを追加します。
    AddHandler v.ValidationEventHandler, AddressOf MyValidationEventHandler					
  7. 読み取りおよび検証、XMLdocument の次のコードを追加します。検証エラーが発生した場合 MyValidationEventHandler は、エラーを処理するために呼ぶ。このサブルーチンは、 isValidFalse に設定します (このセクションの手順 8 を参照してください)。ドキュメントが有効か無効かどうかの検証後に、isValid のステータスを確認できます。
    While v.Read()   ' Could add code here to process the content.End Whilev.Close()' Check whether the document is valid or invalid.If isValid Then   Console.WriteLine("Document is valid")Else   Console.WriteLine("Document is invalid")End If					
  8. 後、Main サブルーチン、theMyValidationEventHandler サブルーチンを次のように記述します。
    Public Sub MyValidationEventHandler(ByVal sender As Object, _                                    ByVal args As ValidationEventArgs)   isValid = False   Console.WriteLine("Validation event" & vbCrLf & args.Message)End Sub					
  9. アプリケーションをビルド及び実行します。

    Applicationshould レポートは、XML ドキュメントが有効であります。
  10. Visual Studio 2005年または Visual Studio .NET では、itinvalid に ProductWithDTD.xml を変更 (たとえば、削除、 商品名Rugbyjersey/商品名 要素)。
  11. アプリケーションを再度実行します。

    アプリケーションの下記の次のエラー メッセージ:
    EventElement '製品' の検証が不完全な内容です。'ProductName' が必要です。File:///C:/MyFolder/ProductWithDTD.xml(4, 3) で、erroroccurred。ドキュメントが無効です。

XDR スキーマと XML ドキュメントへのリンクを作成します。

  1. Visual Studio 2005年または Visual Studio .NET では、 [ファイル] メニューの [新規] をポイントし、[ファイル] をクリックします。
  2. テキスト ファイルの種類を選択し、[開く] をクリックします。
  3. ファイル todescribe は、XML ドキュメントの文法を次の XDR スキーマ定義を追加します。
    <?xml version="1.0"?><Schema name="ProductSchema"         xmlns="urn:schemas-microsoft-com:xml-data"        xmlns:dt="urn:schemas-microsoft-com:datatypes">   <AttributeType name="ProductID" dt:type="int"/>   <ElementType name="ProductName" dt:type="string"/>   <ElementType name="Product" content="eltOnly">      <attribute type="ProductID" required="yes"/>      <element type="ProductName"/>   </ElementType></Schema>					
  4. としてファイルを保存します。 Product.xdr で XML ドキュメントと同じフォルダーです。
  5. 元の Product.xml を開き次のように theXDR のスキーマにリンクします。
    <?xml version="1.0" encoding="utf-8" ?><Product ProductID="123" xmlns="x-schema:Product.xdr">    <ProductName>Rugby jersey</ProductName></Product>					
  6. 変更後の XML ドキュメントとして保存します。ProductWithXDR.xml.

XDR スキーマを使用して検証を実行します。

  1. アプリケーションを変更できるように、次のように、XmlTextReader loadsProductWithXDR.xml:
    Dim r As New XmlTextReader("C:\MyFolder\ProductWithXDR.xml")					
  2. ValidationTypeXDRに設定して検証のリーダーは以下のよういます、XDR の検証を実行するよう。
    v.ValidationType = ValidationType.XDR					
  3. アプリケーションをビルド及び実行します。

    Applicationshould レポートは、XML ドキュメントが有効であります。
  4. ProductWithXDR.xml deliberatelyinvalid に変更します。
  5. アプリケーションを再度実行します。

    アプリケーションの shouldreport の検証エラー。

XSD スキーマと XML ドキュメントへのリンクを作成します。

  1. Visual Studio .NET で、[ファイル] メニューの [新規] をポイントし、[ファイル] をクリックします。
  2. テキスト ファイルの種類を選択し、[開く] をクリックします。
  3. ファイル todescribe は、XML ドキュメントの文法を次の XSD スキーマ定義を追加します。
    <?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">   <xsd:element name="Product">      <xsd:complexType>         <xsd:sequence>            <xsd:element name="ProductName" type="xsd:string"/>         </xsd:sequence>         <xsd:attribute name="ProductID" use="required" type="xsd:int"/>      </xsd:complexType>   </xsd:element></xsd:schema>					
  4. としてファイルを保存します。 Product.xsd で XML ドキュメントと同じフォルダーです。
  5. 元の Product.xml を開き次のように theXSD のスキーマにリンクします。
    <?xml version="1.0" encoding="utf-8" ?><Product ProductID="123"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:noNamespaceSchemaLocation="Product.xsd">   <ProductName>Rugby jersey</ProductName></Product> 					
  6. 変更後の XML ドキュメントとして保存します。ProductWithXSD.xml.

XSD スキーマを使用して検証を実行します。

  1. アプリケーションを変更できるように、次のように、XmlTextReader loadsProductWithXSD.xml:
    Dim r As New XmlTextReader("C:\MyFolder\ProductWithXSD.xml")					
  2. 検証のリーダーを以下のよういます、XSD スキーマ検証を実行するように、 ValidationTypeスキーマを設定します。
    v.ValidationType = ValidationType.Schema					
  3. ビルドして、XSD スキーマを使用して XML documentby を検証するアプリケーションを実行します。

    XMLdocument が有効であると報告されます。

XSD スキーマで名前空間を使用します。

  1. Visual Studio 2005 または Visual Studio .NET で、ProductWithXSD.xml を開きます。Urn: マークアップ文書で、デフォルト名前空間を宣言します。次のように、この名前空間内のコンテンツを検証する、XSDschema を指定する XSD リンクを変更します。
    <?xml version="1.0" encoding="utf-8"?><Product ProductID="123"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns="urn:MyNamespace"         xsi:schemaLocation="urn:MyNamespace Product.xsd">   <ProductName>Rugby jersey</ProductName></Product>					
  2. ProductWithXSD.xml を保存します。
  3. Product.xsd を開く、[ XML ] タブをクリックし、変更し、 xsd:schemaスキーマは、名前空間urn: マークアップに適用されるようタグを次のように起動します。
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"            targetNamespace="urn:MyNamespace"            elementFormDefault="qualified">					
  4. Product.xsd を保存します。
  5. 使用して XSD スキーマで XML ドキュメントを検証するアプリケーションを実行します。

キャッシュの名前空間

  1. Visual Studio 2005 または Visual Studio .NET で、Module1.vb を開きます。メイン サブルーチンの先頭、次のように検証オブジェクトを作成します。
    Dim cache As New XmlSchemaCollection()					
  2. 検証オブジェクトは、improvedperformance のメモリ内キャッシュのスキーマをできます。各スキーマは、異なる名前空間に関連付けられています。キャッシュ Product.xsd に以下のコードを追加します。
    cache.Add("urn:MyNamespace", "C:\MyFolder\Product.xsd")					
  3. XmlValidatingReaderオブジェクトを作成するコードの後に次のステートメントを追加します。スキーマの cacheto、 XmlValidatingReader、リーダーは、メモリ内のスキーマを使用できるように追加されます。
    v.Schemas.Add(cache)					

確認方法

  1. アプリケーションをビルド及び実行します。
  2. XML ドキュメントがまだ XSD スキーマを validatedagainst されていることを確認します。
  3. Deliberatelymake を ProductWithXSD.xml にいくつか変更が無効です。
  4. これら validationerrors が検出されるかを確認します。

警告: この記事は自動翻訳されています

プロパティ

文書番号:315533 - 最終更新日: 07/03/2015 22:57:00 - リビジョン: 8.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315533 KbMtja
フィードバック