次の方法で共有


isXPS.exe (isXPS 適合性ツール)

isXPS 適合性ツール (isXPS.exe) は、ファイルが XML Paper Specification (XPS) および Open Packaging Conventions (OPC) 仕様に適合しているかどうかをテストするツールです。

XPS と OPC の仕様は、「XPS : 仕様とライセンスのダウンロード」からダウンロードできます。

機能

  • 実行したテストについて詳細なレポートを生成します。

  • バッチ ジョブ内の複数のファイルをテストできます。

  • テストした各ファイルの各エラーの説明を提供します。

  • 検出された各エラーがどの規則に違反している可能性があるかをインテリジェントに示します。

  • OPC への適合性のみをテストするなど、カスタム テストを実行できるようにするスイッチをサポートします。

構文

isXPS /f=file_name_or_pattern [options]

注意

どのスイッチでも、スラッシュ ("/") の代わりにハイフン ("-") を使用し、等号 ("=") の代わりにコロン (":") を使用することができます。

Aa348104.collapse_all(ja-jp,VS.110).gifスイッチ

スイッチ

Description

/?

ツールのヘルプが cmd.exe のウィンドウに表示されます。 このスイッチは、すべてのテストの実行をブロックします (また、このスイッチを指定するとツールがエラーを報告します。 これは、Windows ドライバー開発キットのテスト インフラストラクチャでテストを実行したときに、誤って "合格" と報告されないようにするためです)。

/BadDir=path

適合性テストに失敗したファイルをコピーまたは移動するディレクトリを指定します。 /DelBad スイッチが使用されている場合は移動され、 使用されていない場合はコピーされます。

/DelBad

適合性テストに失敗したファイルを現在のディレクトリから削除するように指定します (/BadDir スイッチと共に使用すると、該当するファイルは後者のスイッチで指定されたディレクトリに移動されます。 /BadDir スイッチが使用されていない場合、該当するファイルは削除されます)。

/device="device_string"

Windows ドライバー開発キットに付属する Windows Test Technologies (WTT) ロガーで使用するカスタム デバイス文字列を指定します (「/logger」を参照)。

/doc=Doc_XSD_file

XPS ファイルの <DocumentStructure> パーツを検証するためのカスタム XML スキーマ定義 (XSD) ファイルを指定します。 このツールでは、カスタム ファイルではなく、組み込みの既定 XSD ファイルを使用することをお勧めします。

/f

必須です。 テストするファイルを 1 つ以上指定します。 file_name_or_pattern には、標準のコマンド ライン ワイルドカード文字 "?" および "*" を使用できます。 パスまたはファイル名にスペースが含まれている場合は、パスまたはファイル名全体を引用符で囲みます。 XPS ファイルの通常のファイル名拡張子は 'xps' ですが、'xps' である必要はありません。

/logfile=file_name

ログ ファイルのパスとファイル名を指定します。 /logger スイッチを File に設定していない場合、このスイッチは無視されます。 /logfile スイッチが使用されておらず、/logger スイッチが File に設定されている場合は、現在のディレクトリにある isXPSLog.txt がログ ファイルになります。 /logsplit スイッチで 0 を超える値が指定されている場合、/logfile で指定されたログ ファイルには Setup テストの結果のみが格納されます。 その他のテストは、1 つ以上の他のログ ファイルに格納されます。 詳細については、この表の /logprefix および /logsplit の説明を参照してください。すべてのテストの説明については、このトピックの後半を参照してください。

/logger=log_type

生成する出力の種類を指定します。 これには、次の値を使用できます。

  • Console (既定値) - 出力は、cmd.exe のウィンドウにストリーミングされます。

  • File - 出力は、/logfile スイッチで別のパスまたはファイル名が指定されている場合を除き、現在のディレクトリにある isXPSLog.txt という名前のテキスト ファイルに保存されます。

  • WTT - 出力は、現在のディレクトリにある XPSLog.wtl という名前の Windows Test Technologies ログ ファイルに保存されます。 このオプションは、Windows ドライバー開発キットのテスト インフラストラクチャでテストが実行されている場合のみ使用できます。

/logprefix=prefix

/logsplit スイッチが使用された場合に生成されるログ ファイルの名前の先頭に追加するプレフィックスを指定します。

/logsplit スイッチを明示的に指定せずに (または /logsplit=0 と明示的に指定して) このスイッチを使用した場合、ツールの動作は /logsplit=1 と指定した場合と同様になります (この表の後半にある /logsplit を参照してください)。

/logsplit=number

ログを複数のファイルに分割するかどうか、およびどのように分割するかを指定します。

このスイッチが指定されていない場合、または指定されているものの既定値の 0 に設定されている場合には、分割は行われません (ただし、/logprefix が使用されている場合は分割が行われ、明示的な /logsplit=0 スイッチがあっても、ツールの動作は /logsplit=1 の場合と同様になります)。

このスイッチが 1 に設定されている場合、ファイル isXPSlog.txt (または /logfile スイッチで指定されたファイル) で報告されるのは Setup テストの結果のみになります。 各ファイルのテスト結果 (このトピックの後半にある「II. <file_name> のテスト」を参照してください) は、_file_name.log (file_name はテスト対象の XPS ファイルの名前) という名前の個別のログ ファイルで報告されます。 /logprefix パラメーターを使用した場合は、下線の前にプレフィックスが付きます。

このスイッチが 1 より大きい値に設定されている場合は、各ログ ファイルに何ファイル分のテスト結果を記録するかを示します。 ファイル isXPSlog.txt (または /logfile スイッチで指定されたファイル) で報告されるのは、Setup テストの結果のみになります。 その他のテスト結果は _NtoM.log (NtoM はそのログ ファイルに含まれているファイルの範囲) という名前の個別のログ ファイルで報告されます。 たとえば、/f パラメーターで指定されたパターンに 5 ファイルが一致した場合、/logsplit が 2 に設定されていると、_1to2.log、_3to4.log および _5to5.log という名前のファイルが生成されます。 /logprefix パラメーターを使用した場合は、下線の前にプレフィックスが付きます。

/logger スイッチを File に設定していない場合、このスイッチは無視されます。 すべてのテストの説明については、このトピックの後半を参照してください。

/NoInterleave

このスイッチは、インターリーブ テストをブロックします。 すべてのテストの説明については、このトピックの後半を参照してください。

/OnlyOPC

入力ファイルが OPC に適合しているかどうかのみをテストし、XPS に適合しているかどうかはテストしないように指定します。 OPC 固有部分の内部マークアップがテストされます。 このスイッチは、XPS パッケージ構造テストの実行をブロックします。 すべてのテストの説明については、このトピックの後半を参照してください。

/OnlyPkg

ファイルのパーツのテストにおいて、パッケージに正しく格納されていること、コンテンツの型が正しいこと、およびパーツ間のリレーションシップが正しいことの確認のみを行うように指定します。 パーツの内部マークアップは、OPC 固有のパーツも含めてテスト対象外になります。 このスイッチは、OPC 検証テストのリレーションシップ マークアップ テスト部分の実行をブロックします。 また、XPS パッケージ構造テストの固定ドキュメント シーケンス テスト、固定ドキュメント テスト、または固定ページ テスト部分の実行もブロックします。 さらに、独立リソース検証テストの実行をブロックします。 すべてのテストの説明については、このトピックの後半を参照してください。

/r=Rsc_XSD_file

XPS ファイルの <ResourceDictionary> パーツを検証するためのカスタム XML スキーマ定義 (XSD) ファイルを指定します。 このツールでは、カスタム ファイルではなく、組み込みの既定 XSD ファイルを使用することをお勧めします。

/s

/f スイッチで指定されたパターンに一致するファイルの検索時にサブディレクトリも検索するように指定します。 このスイッチを使用しないと、サブディレクトリは検索されません。 /f スイッチで別のディレクトリを指定しない限り、親ディレクトリは現在のディレクトリです。

/SkipResParts

独立リソース (フォントとイメージ) をテストしないように指定します。 このスイッチは、独立リソース検証テストの実行をブロックします。 すべてのテストの説明については、このトピックの後半を参照してください。

/x=S0_XSD_file

XPS ファイルの <FixedDocumentSequence>、<FixedDocument>、および <FixedPage> パーツを検証するためのカスタム XML スキーマ定義 (XSD) ファイルを指定します。 このツールでは、カスタム ファイルではなく、組み込みの既定 XSD ファイルを使用することをお勧めします。

ログ ファイルの解釈

テスト結果は入れ子状に連続して出力されます。 各テストの先頭は "+Start Test" という行でマークされ、各テストの末尾は "-End Test" という行でマークされます。 ルート テストは、/f スイッチで指定されたすべてのファイルのテストを総合したものです。 たとえば、/f スイッチで "s*.xps" と指定した場合、ルート テストの結果は次の例のようになります。

Beginning Test ******************************************
+Start Test: isXPS s*.xps

       … matter omitted … 

-End Test: isXPS s*.xps Result: Fail

Log Rollup***************************** TestName: isXPS s*.xps PassRate: 77% Pass: 63 Warn: 0 Fail: 18 Block: 0 ******************************************************* Result: Fail

"-End Test" の行に全体の結果が示されている点に注目してください。 いずれかのファイルが失敗すると、テスト全体が "Fail" とマークされます。

"Log Rollup" セクションは、テスト全体の概要を示します。 "PassRate" は、合格したテストの割合です。 "Pass"、"Warning"、および "Fail" は、合格したテスト、警告付きで合格したテスト、失敗したテストの数をそれぞれ示します ("Block" は、ツールの現在のバージョンでは使用されない特殊なエラー状態です)。

全体的な結果は、最後の行に再度出力されます。

ルート テストの子テストは 2 種類あります。

  • Setup - Setup テストは各ログに 1 つだけ存在します。

  • <file_name> - /f スイッチで指定されたパターンに一致する各ファイルにつき 1 つのテストが存在します。

Aa348104.collapse_all(ja-jp,VS.110).gifSetup テスト

Setup テストは、ツールの実行、コマンド ラインの解析、および XSD ファイルの読み込みとコンパイルが可能かどうかを確認するために使用されます。 5 種類の子テストがあります。

  1. ロガーの初期化 - 1 つだけ存在します。 失敗した場合はログが生成されないため、ログに記録されるときは常に "Pass" になります。

  2. コマンド ライン解析 - 1 つだけ存在します。 失敗した場合、詳細は報告されませんが、ツールの構文に関するヘルプがコンソールにストリーミングされます。

  3. カスタム XSD ファイルの読み込みと登録 - この種類の子テストの数は 0 ~ 3 (スイッチ /doc/r、および /x の使用ごとに 1 つ) です。 読み込まれた XSD ファイルはツールによって登録されます。 XSD に関連付けられている名前空間が XPS マークアップの複数のパーツに適用される場合は、適用対象のパーツごとに個別に登録されます。 たとえば、<DocumentStructure> XSD は、<DocumentStructure> と <StoryFragments> パーツの両方に登録されます。次の例を参照してください。

    注意

    カスタム XSD を読み込むことができない場合は、残りの XSD も読み込まれません。これには、組み込みのすべての XSD も含まれます。そのため、後続のテストの大多数は実行されません。

  4. 組み込みの XSD ファイルの読み込みと登録 - カスタム XSD を読み込むことができない場合を除き、このテストは少なくとも 9 つ存在します。 /doc/r、または /x スイッチが使用されていない場合は、この種類のテストがそれぞれについて 1 つ追加されます。 カスタム XSD の登録に関して先の箇条書きで述べた事項は、組み込みの XSD にも適用されます。

  5. XSD のコンパイル - XSD ファイルがすべて読み込まれたことを前提として、コンパイル テストが 1 つ実行されます。XSD ファイルの中に 1 つでもコンパイルできないものがあると、コンパイル テストは失敗します。 読み込むことができない XSD ファイルがある場合、このテストは実行されません。

Setup テストの結果の例を次に示します。 この例では、/x スイッチを使用して別の S0 スキーマを指定しています。

+Start Test: Setup
  Pass: Logger Initialized successfully
  Pass: Command line parameters parsed successfully
  Info: Reading stream for S0 schema from .\alternatexsds\s0schema.xsd
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06 
    and ContentType application/vnd.ms-package.xps-fixedpage+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06 
    and ContentType application/vnd.ms-package.xps-fixeddocument+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06 
    and ContentType application/vnd.ms-package.xps-fixeddocumentsequence+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06 
    and ContentType application/vnd.ms-package.xps-resourcedictionary+xml from provided stream
  Info: No filename specified for Resource Dictionary Key schema. Using default
  Info: No filename specified for Document Structure schema. Using default
  Info: Loading default Schema for Resource Dictionary key. (rdkey.xsd)
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/resourcedictionary-key 
    and ContentType application/vnd.ms-package.xps-fixedpage+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/resourcedictionary-key 
    and ContentType application/vnd.ms-package.xps-fixeddocument+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/resourcedictionary-key 
    and ContentType application/vnd.ms-package.xps-fixeddocumentsequence+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/resourcedictionary-key 
    and ContentType application/vnd.ms-package.xps-resourcedictionary+xml from provided stream
  Info: Loading default Schema for Document structure (DocStructure.xsd)
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/documentstructure 
    and ContentType application/vnd.ms-package.xps-documentstructure+xml from provided stream
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/documentstructure 
    and ContentType application/vnd.ms-package.xps-storyfragments+xml from provided stream
  Info: Loading default Schema for Relationship markup (Relationships.xsd)
  Info: Registering Schema for namespace https://schemas.openxmlformats.org/package/2006/relationships 
    and ContentType application/vnd.openxmlformats-package.relationships+xml from provided stream
  Info: Loading default Schema for Package properties (CoreProperties.xsd)
  Info: Registering Schema for namespace https://schemas.openxmlformats.org/package/2006/metadata/core-properties 
    and ContentType application/vnd.openxmlformats-package.core-properties+xml from provided stream
  Info: Loading default Dublin Schema for Package properties (dc.xsd)
  Info: Registering Schema for namespace http://purl.org/dc/elements/1.1/ 
    and ContentType application/vnd.openxmlformats-package.core-properties+xml 
    from provided stream
  Info: Loading default Dublin terms Schema for Package properties (dcterms.xsd)
  Info: Registering Schema for namespace http://purl.org/dc/terms/ 
    and ContentType application/vnd.openxmlformats-package.core-properties+xml 
    from provided stream
  Info: Loading default Dublin type Schema for Package properties (dcmitype.xsd)
  Info: Registering Schema for namespace http://purl.org/dc/dcmitype/ 
    and ContentType application/vnd.openxmlformats-package.core-properties+xml 
    from provided stream
  Info: Loading the OPC Digital Signature Schema (OPC_DigSig.xsd)
  Info: Registering Schema for namespace https://schemas.openxmlformats.org/package/2006/digital-signature 
    and ContentType application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml 
    from provided stream
  Info: Loading the XML Digital Signature Core Schema (xmldsig-core-schema.xsd)
  Info: Registering Schema for namespace http://www.w3.org/2000/09/xmldsig# 
    and ContentType application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml 
    from provided stream
  Info: Loading default Schema for Digital Signature Definitions (SignatureDefinitions.xsd)
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/signature-definitions 
    and ContentType CustomSignatureDefinitionTag from provided stream
  Info: Loading default Schema for the Discard Control part (DiscardControl.xsd)
  Info: Registering Schema for namespace https://schemas.microsoft.com/xps/2005/06/discard-control 
    and ContentType application/vnd.ms-package.xps-discard-control+xml from provided stream
  Info: Compiling schemas
-End Test: Setup Result: Pass

この例で参照されている Dublin スキーマについては、「Dublin Core Metadata Initiative」を参照してください。

Aa348104.collapse_all(ja-jp,VS.110).gif<file_name> テスト

特定のファイルのテストは、それぞれ次の子テストで構成されます。

  • インターリーブ テスト

  • 独立リソース検証テスト

  • OPC 検証テスト

  • XPS パッケージ構造テスト

Aa348104.collapse_all(ja-jp,VS.110).gifインターリーブ テスト

ファイルがインターリーブされているかどうか、インターリーブされている場合は正しくインターリーブされているかどうかが報告されます (このテストは、/NoInterleave スイッチが使用されている場合は実行されません)。これには 2 つの子テストがあります。

  1. 断片収集テスト - ファイルに埋め込まれている断片がすべて収集されます。 これには、フォントおよびイメージの各ファイル、リレーションシップ ファイル、および *.fpage、*.fdoc、*.fdseq、*.frag の各ファイルが含まれます。 このテストのログ エントリの例を次に示します。 テスト対象の XPS パッケージには 1 つの固定ドキュメントがあり、そのドキュメントには 1 つの固定ページ、1 つのフォント、および 1 つのイメージがあります。

    +Start Test: Collecting pieces from .\MyFile.xps
      Info: _rels/.rels, collected
      Info: Documents/FixedDocument_1.fdoc, collected
      Info: Pages/_rels/FixedPage_1.fpage.rels, collected
      Info: Pages/FixedPage_1.fpage, collected
      Info: Resources/Fonts/33c063c8-1259-4322-acc8-8fc1964cc064.ODTTF, collected
      Info: Resources/Images/Image_1.png, collected
      Info: [Content_Types].xml, collected
      Info: FixedDocumentSequence.fdseq, collected
    -End Test: Collecting pieces from .\MyFile.xps Result: Pass
    
  2. パーツ順序テスト - Zip 中央ディレクトリにおけるファイルのパーツの順序が Zip ローカル ファイル ヘッダーにおける順序と同じかどうかを確認するテストです。 Microsoft Windows XP シェルはパーツの順序が異なる zip ファイルの編集には対応していないため、順序が異なっているとテスト結果は "Warn" になります。

Aa348104.collapse_all(ja-jp,VS.110).gif独立リソース検証テスト

独立リソース検証テストは、フォント コンテンツ型またはイメージ コンテンツ型をポイントする XPS パーツをファイル全体から検索し、各リソースのコンテンツ型が正しいかどうかを確認します。 たとえば、フォント コンテンツ型がポイントするリソースが実際にフォントかどうかを確認します (これらのテストは、/SkipResParts スイッチまたは /OnlyPkg スイッチが使用されている場合は実行されません)。

Aa348104.collapse_all(ja-jp,VS.110).gifOPC 検証テスト

OPC 検証テストは、XPS ファイルが OPC 仕様に適合しているかどうかをチェックします。

このテストは、2 つの子テストで構成されます。

  1. リレーションシップ マークアップ テスト - パッケージ内の各 <Relationships> パーツが検証されます (ただし、パッケージ ルートのリレーションシップは除きます)。 該当するパーツごとに子テストが存在します。 たとえば、1.fpage.rels と呼ばれる次のような <Relationships> パーツがあるとします。

    <?xml version="1.0" encoding="utf-8"?>
    <Relationships xmlns="https://schemas.openxmlformats.org/package/2006/relationships">
      <Relationship 
        Type="https://schemas.microsoft.com/xps/2005/06/required-resource" 
        Target="../../../Resources/7c1549d5-8780-4db6-8831-19bfe6d8f88d.ttf" 
        Id="Rf50d8565978247c5" />
      <Relationship 
        Type="https://schemas.microsoft.com/xps/2005/06/required-resource" 
        Target="../../../Resources/2884eaa8-9d38-4506-adf8-977a24ff9faa.jpg" 
        Id="R3643335530274b5f" />
    </Relationships>
    

    このツールは、次のログ エントリを返します。

    +Start Test: /Documents/1/Pages/_rels/1.fpage.rels Markup
      Info: Validating Markup of Part /Documents/1/Pages/_rels/1.fpage.rels 
        using target namespace "https://schemas.openxmlformats.org/package/2006/relationships"
      Pass: Markup of Part is Compliant according to the XSD supplied
    -End Test: /Documents/1/Pages/_rels/1.fpage.rels Markup Result: Pass
    

    /OnlyPkg スイッチが使用されている場合、リレーションシップ マークアップ テストのログ エントリには、検証が実行されなかったことを示す警告のみが記録されます。

  2. パッケージ リレーションシップ マークアップ テスト - XML Paper Specification (XPS) パッケージのルートの <Relationships> パーツ (存在する場合) の検証が行われます。 たとえば、 .relsと呼ばれる次のような <Relationships> パーツがあるとします。

    <?xml version="1.0" encoding="utf-8"?>
    <Relationships xmlns="https://schemas.openxmlformats.org/package/2006/relationships">
      <Relationship Type="https://schemas.microsoft.com/xps/2005/06/fixedrepresentation"
        Target="/FixedDocumentSequence.fdseq" Id="Ra1bd31ccb7f04267" />
      <Relationship 
        Type="https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin"
        Target="/package/services/digital-signature/origin.psdsor" Id="R290472945f4248d7" />
    </Relationships>
    

    このツールは、次のログ エントリを返します。

    Info: Found a https://schemas.microsoft.com/xps/2005/06/fixedrepresentation 
      relationship, validating...
    Pass: Valid Relationship to /FixedDocumentSequence.fdseq from a PackageRoot part. 
      RelationshipType: https://schemas.microsoft.com/xps/2005/06/fixedrepresentation
    Info: Found a https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
      relationship, validating...
    Info: Digital Signature Origin part /package/services/digital-signature/origin.psdsor 
      found, validating...
    
        … matter omitted … 
    
    Pass: Valid Relationship to /package/services/digital-signature/origin.psdsor 
      from a PackageRoot part. RelationshipType: 
      https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
    

    ルートからのリレーションシップが、<DigitalSignature> パーツのように内部マークアップを持つオブジェクトに対するものである場合、その <Relationship> パーツの検証には子テストとしてターゲットのマークアップの検証が含まれます。 後者のテストに独自の子が存在する場合もあります。 たとえば、前の例にある "Digital Signature Origin part" のテストで "… matter omitted …" となっている部分には、実際は次のテスト ツリー エントリがありました。

    +Start Test: Digital Signature Valdiation
      Info: Found a https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature 
        relationship, validating...
      Info: Found Digital Signature part 
        /package/services/digital-signature/xml-signature/c613c04b58cb4d619c92bab230c4b0c6.psdsxs, 
        validating...
      +Start Test: /package/services/digital-signature/xml-signature/c613c04b58cb4d619c92bab230c4b0c6.psdsxs Markup
        Info: Validating Markup of Part 
          /package/services/digital-signature/xml-signature/c613c04b58cb4d619c92bab230c4b0c6.psdsxs 
          using target namespace "http://www.w3.org/2000/09/xmldsig#"
        Pass: Markup of Part is Compliant according to the XSD supplied
      -End Test: /package/services/digital-signature/xml-signature/c613c04b58cb4d619c92bab230c4b0c6.psdsxs 
        Markup Result: Pass
      Info: Found a https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
        relationship, validating...
      Pass: Valid Relationship to 
        /package/services/digital-signature/certificate/715364A10002007DBA0C.cer from a
        application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml part. 
        RelationshipType: https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
      Pass: Valid Relationship to 
        /package/services/digital-signature/xml-signature/c613c04b58cb4d619c92bab230c4b0c6.psdsxs from a 
        application/vnd.openxmlformats-package.digital-signature-origin part. 
        RelationshipType: https://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
    -End Test: Digital Signature Valdiation Result: Pass
    

Aa348104.collapse_all(ja-jp,VS.110).gifXPS パッケージ構造テスト

XPS パッケージ構造テストは、XPS パッケージのツリーのウォークスルーを再帰的に行います。 このテストでは、各パーツのマークアップが検証され、マークアップで参照されているすべてのリソースについて <Relationship> パーツが存在するかどうかが確認されます (このテストは、/OnlyOPC が使用されている場合は実行されません)。

次の子テストで構成されます。

  1. 固定ドキュメント シーケンス テスト - *.fdseq ファイル内の <FixedDocumentSequence> マークアップが検証されます。 テストに合格したときのログ レポートを次の例に示します。

    +Start Test: /FixedDocumentSequence.fdseq Markup
      Info: Validating Markup of Part /FixedDocumentSequence.fdseq using 
        target namespace "https://schemas.microsoft.com/xps/2005/06"
      Pass: Markup of Part is Compliant according to the XSD supplied
    -End Test: /FixedDocumentSequence.fdseq Markup Result: Pass
    

    テストが失敗した場合のログ レポートを次の例に示します。このケースでは、XPS の作成者が誤って <FixedDocumentSequence> の開始タグと終了タグの間にテキストを追加したことが失敗の原因になっています。

    +Start Test: /FixedDocumentSequence.fdseq Markup
      Info: Validating Markup of Part /FixedDocumentSequence.fdseq using 
        target namespace https://schemas.microsoft.com/xps/2005/06
      Fail: Markup is not Compliant:  Number of errors: 1
      Info: XPSRule: M2.72
      Info: Error #1: At position (1,134) Message: The element 'FixedDocumentSequence' 
        in namespace 'https://schemas.microsoft.com/xps/2005/06' 
        cannot contain text. List of possible elements expected: 
        'DocumentReference' in namespace 'https://schemas.microsoft.com/xps/2005/06'.
    -End Test: /FixedDocumentSequence.fdseq Markup Result: Fail
    

    /OnlyPkg スイッチが使用されている場合、固定ドキュメント シーケンス テストのログ エントリには、検証が実行されなかったことを示す警告のみが記録されます。

  2. 固定ドキュメント テスト - *.fdoc ファイル内の <FixedDocument> マークアップが検証されます。 テストに合格したときのログ レポートを次の例に示します。

    +Start Test: /Documents/FixedDocument_1.fdoc Markup
      Info: Validating Markup of Part /Documents/FixedDocument_1.fdoc 
        using target namespace "https://schemas.microsoft.com/xps/2005/06"
      Pass: Markup of Part is Compliant according to the XSD supplied
    -End Test: /Documents/FixedDocument_1.fdoc Markup Result: Pass
    

    テストが失敗した場合のログ レポートを次の例に示します。このケースでは、<FixedDocument> パーツの中に、パッケージ内に存在しないページへの参照 (<PageContent Source="../Pages/FixedPage_3.fpage" />) が含まれていることが失敗の原因になっています。 このログには、違反している可能性がある規則の一覧が記載されており、 XPS 仕様 (「XPS: 仕様とライセンスのダウンロード」からダウンロード可能) でエラーを参照することができます。

    Fail: Error getting part: /Pages/FixedPage_3.fpage Message: 
      Specified part does not exist in the package.
    Fail: Reference to non-existant or corrupted part: 
      /Pages/FixedPage_3.fpage from /Documents/FixedDocument_1.fdoc
    Info: Possible violation of OPC rules M1.1, M1.2, M1.5, M1.6, M1.7,
      M1.8, M1.10, MB.2 
    

    /OnlyPkg スイッチが使用されている場合、固定ドキュメント テストのログ エントリには、検証が実行されなかったことを示す警告のみが記録されます。

  3. 固定ページ テスト - *.fpage ファイル内の <FixedPage> マークアップが検証されます。 テストに合格したときのログ レポートを次の例に示します。

    +Start Test: /Pages/FixedPage_1.fpage Markup
      Info: Validating Markup of Part /Pages/FixedPage_1.fpage using 
        target namespace "https://schemas.microsoft.com/xps/2005/06"
      Pass: Markup of Part is Compliant according to the XSD supplied
    -End Test: /Pages/FixedPage_1.fpage Markup Result: Pass
    

    テストが失敗した場合のログ レポートを次の例に示します。このケースでは、<FixedPage> パーツの中に、XPS スキーマで宣言されていない属性が含まれていることが失敗の原因になっています。 このログでは、どの規則に違反しているかが特定され、間違ったマークアップの開始位置が正確な文字位置で示されます。

    +Start Test: /Pages/FixedPage_2.fpage Markup
      Info: Validating Markup of Part /Pages/FixedPage_2.fpage using 
        target namespace "https://schemas.microsoft.com/xps/2005/06"
      Fail: Markup is not Compliant:  Number of errors: 1
      Info: XPSRule: M2.72
      Info: Error #1: At position (4,55) Message: The 'Stretch' 
        attribute is not declared.
    -End Test: /Pages/FixedPage_2.fpage Markup Result: Fail 
    

    /OnlyPkg スイッチが使用されている場合、固定ページ テストのログ エントリには、検証が実行されなかったことを示す警告のみが記録されます。

  4. カスタム マークアップ テスト - XSD ファイル自体によって課されるものではない規則 (M2.74、M3.7 ~ M3.14、M4.3 など) への適合性をチェックするテストです。 これらの規則は、XPS 仕様 (「XPS: 仕様とライセンスのダウンロード」からダウンロード可能) に記載されています。

  5. ページ リレーションシップ テスト - <FixedPage> マークアップ (XPS パッケージの page_name.fpage コンポーネント) 内にあるリソース パーツ (フォント、イメージ、リモート リソース ディクショナリ、または International Color Consortium [ICC] プロファイル) へのすべての参照をチェックし、そのリソースへの対応する required-resource リレーションシップが (page_name.fpage.rels コンポーネント内に) 存在すること、およびそのリレーションシップがパーツの正しい型をポイントしていることを確認するテストです。 リソースごとに子テストが存在します。 フォントへのリレーションシップに関するログ エントリを次の例に示します。

    +Start Test: /Documents/1/Pages/3.fpage Relationships
      Info: Validating Relationships of Part /Documents/1/Pages/3.fpage
      Info: Validating Font part: /Resources/86e01f8d-dfc9-438e-9d02-830e7076a3f8.ODTTF 
        ContentType: application/vnd.ms-package.obfuscated-opentype
      Info: Name:Verdana, Embedding rights:Installable, Glyphs count:62
      Pass: Found relationship to resource Part: 
        /Resources/86e01f8d-dfc9-438e-9d02-830e7076a3f8.ODTTF
    -End Test: /Documents/1/Pages/3.fpage Relationships Result: Pass
    
  6. 参照されていないパーツのテスト - パッケージ内に参照されていないパーツが見つかると、ログに警告が出力されます。

XPS パッケージ構造テストの子テストの順序は次のとおりです。

  1. <FixedDocumentSequence> 部分をテストします。

  2. <FixedDocumentSequence> パーツで参照されている最初の (または次の) <FixedDocument> パーツをテストします。

  3. <FixedDocument> パーツで参照されている最初の (または次の) <FixedPage> パーツをテストします。

  4. <FixedPage> パーツ内のカスタム マークアップ (存在する場合) をテストします。

  5. <FixedPage> パーツの <Relationships> パーツ (存在する場合) をテストします。 このテストは次の子テストで構成されます。

    1. <Relationships> パーツ内の最初の (または次の) <Relationship> パーツをテストします。 フォント、イメージ、リモート リソース ディクショナリ、および International Color Consortium (ICC) プロファイルへのリレーションシップが対象になります。

    2. すべてのリレーションシップについて手順 a. を繰り返します。

  6. ドキュメント内のすべてのページについて手順 3. ~ 5. を繰り返します。

  7. シーケンス内のすべてのドキュメントについて手順 2. ~ 6. を繰り返します。

  8. 参照されていないパーツの有無をテストします。

あるパッケージに関する完全な XPS パッケージ構造テストの結果を次の例に示します。このパッケージは 1 つの (2 ページの) ドキュメントで構成され、各ページに 1 つのフォントがあり、2 ページ目にイメージがあります。 2 つ目のドキュメントの 2 ページ目にある <FixedPage> パーツに、XPS 仕様で宣言されていない "Stretch" 属性への参照が存在する点に注目してください。 これが原因で、ツールはこのページとパッケージについて失敗の判定を下します。

+Start Test: Validating XPS Package structure: .\Spec.xps
  Info: Validating XPSRule M2.14
  Info: Found a https://schemas.microsoft.com/xps/2005/06/fixedrepresentation 
    relationship, validating...
  Pass: Valid Relationship to /FixedDocumentSequence.fdseq 
    from a PackageRoot part. RelationshipType: 
    https://schemas.microsoft.com/xps/2005/06/fixedrepresentation
  Pass: Found a Valid StartPart with ContentType: 
    application/vnd.ms-package.xps-fixeddocumentsequence+xml
  +Start Test: /FixedDocumentSequence.fdseq Markup
    Info: Validating Markup of Part /FixedDocumentSequence.fdseq using 
      target namespace "https://schemas.microsoft.com/xps/2005/06"
    Pass: Markup of Part is Compliant according to the XSD supplied
  -End Test: /FixedDocumentSequence.fdseq Markup Result: Pass
  Pass: Found markup reference to Valid Part with expected ContentType. 
    TargetURI: /Documents/FixedDocument_1.fdoc ContentType: 
    application/vnd.ms-package.xps-fixeddocument+xml
  +Start Test: /Documents/FixedDocument_1.fdoc Markup
    Info: Validating Markup of Part /Documents/FixedDocument_1.fdoc 
      using target namespace "https://schemas.microsoft.com/xps/2005/06"
    Pass: Markup of Part is Compliant according to the XSD supplied
  -End Test: /Documents/FixedDocument_1.fdoc Markup Result: Pass
  Pass: Found markup reference to Valid Part with expected ContentType. 
    TargetURI: /Pages/FixedPage_1.fpage ContentType: 
    application/vnd.ms-package.xps-fixedpage+xml
  +Start Test: /Pages/FixedPage_1.fpage Markup
    Info: Validating Markup of Part /Pages/FixedPage_1.fpage using 
      target namespace "https://schemas.microsoft.com/xps/2005/06"
    Pass: Markup of Part is Compliant according to the XSD supplied
  -End Test: /Pages/FixedPage_1.fpage Markup Result: Pass
  +Start Test: /Pages/FixedPage_1.fpage Custom Markup validation
  -End Test: /Pages/FixedPage_1.fpage Custom Markup validation Result: Pass
  +Start Test: /Pages/FixedPage_1.fpage Relationships
    Info: Validating Relationships of Part /Pages/FixedPage_1.fpage
    Info: Validating Font part: 
      /Resources/Fonts/9aa4ea89-755c-4331-be84-0cd43ff87195.ODTTF 
      ContentType: application/vnd.ms-package.obfuscated-opentype
    Info: Name:Verdana, Embedding rights:Installable, Glyphs count:35
    Pass: Found relationship to resource Part: 
      /Resources/Fonts/9aa4ea89-755c-4331-be84-0cd43ff87195.ODTTF
  -End Test: /Pages/FixedPage_1.fpage Relationships Result: Pass
  Pass: Found markup reference to Valid Part with expected ContentType. 
    TargetURI: /Pages/FixedPage_2.fpage 
    ContentType: application/vnd.ms-package.xps-fixedpage+xml
  +Start Test: /Pages/FixedPage_2.fpage Markup
    Info: Validating Markup of Part /Pages/FixedPage_2.fpage using 
      target namespace "https://schemas.microsoft.com/xps/2005/06"
    Fail: Markup is not Compliant:  Number of errors: 1
    Info: XPSRule: M2.72
    Info: Error #1: At position (4,55) Message: The 'Stretch' attribute 
      is not declared.
  -End Test: /Pages/FixedPage_2.fpage Markup Result: Fail
  +Start Test: /Pages/FixedPage_2.fpage Custom Markup validation
  -End Test: /Pages/FixedPage_2.fpage Custom Markup validation Result: Pass
  +Start Test: /Pages/FixedPage_2.fpage Relationships
    Info: Validating Relationships of Part /Pages/FixedPage_2.fpage
    Pass: Found relationship to resource Part: /Resources/Images/Image_1.png
    Info: Validating Font part: 
      /Resources/Fonts/3b85141b-0969-4d9e-b9c8-e705bb7e6543.ODTTF 
      ContentType: application/vnd.ms-package.obfuscated-opentype
    Info: Name:Times New Roman, Embedding rights:Installable, Glyphs count:4
    Pass: Found relationship to resource Part: 
      /Resources/Fonts/3b85141b-0969-4d9e-b9c8-e705bb7e6543.ODTTF
  -End Test: /Pages/FixedPage_2.fpage Relationships Result: Pass
  Pass: No un-referenced parts found
-End Test: Validating XPS Package structure: .\Spec.xps Result: Fail

Aa348104.collapse_all(ja-jp,VS.110).gif要件

.NET Framework 3.0

参照

その他の技術情報

XPS の仕様とライセンスのダウンロード

XPS and Windows Vista (XPS と Windows Vista)

XPS Documents: A First Look at APIs For Creating XML Paper Specification Documents (XPS ドキュメント: XML Paper Specification ドキュメントを作成するための API の概要)

Programming XPS Documents Lab and Extending the XPS Document Viewing Experience Lab (「XPS ドキュメントのプログラミング」ラボと「XPS ドキュメントの表示機能の拡張」ラボ)