Partager via


isXPS.exe (isXPS Conformance Tool)

L'outil isXPS Conformance Tool (isXPS.exe) teste la conformité d'un fichier aux normes XML Paper Specification (XPS) et Open Packaging Conventions (OPC).

Vous pouvez télécharger les normes XPS et OPC à partir de la page XPS: Specification and License Downloads.

Fonctionnalités

  • Génère un rapport détaillé des tests effectués.

  • Peut tester plusieurs fichiers dans un programme de traitement par lots.

  • Fournit une description de chaque défaillance dans chaque fichier testé.

  • Suggère de manière intelligente les règles qui n'ont pas été respectées pour chaque défaillance détectée.

  • Prend en charge des commutateurs qui permettent de personnaliser les tests ; par exemple, de tester seulement la conformité à la norme OPC.

Syntaxe

isXPS /f=file_name_or_pattern [options]
RemarqueRemarque

Vous pouvez utiliser un trait d'union ("-") à la place de la barre oblique ("/") et un signe deux-points (":") à la place du signe égal ("=") dans tous les commutateurs.

Commutateurs

Commutateur

Description

/?

L'aide de l'outil est affichée dans la fenêtre cmd.exe. Ce commutateur bloque l'exécution de tous les tests. (Ce commutateur commande également à l'outil de signaler un échec. Cela a pour but de garantir qu'aucun rapport de « réussite » accidentel ne soit émis lorsque le test est exécuté dans l'infrastructure de test de Windows Driver Kit.)

/BadDir=chemin d'accès

Spécifie un répertoire dans lequel les fichiers qui échouent au test de conformité doivent être copiés ou déplacés. Ils sont déplacés si le commutateur /DelBad est utilisé. Ils sont copiés dans le cas contraire.

/DelBad

Spécifie que les fichiers qui échouent au test de conformité doivent être supprimés de leur répertoire actuel. (Lorsque le commutateur /BadDir est également utilisé, les fichiers sont placés dans le répertoire spécifié par ce commutateur. Si le commutateur /BadDir n'est pas utilisé, les fichiers sont supprimés.)

/device="chaîne_périphérique"

Spécifie une chaîne de périphérique personnalisée qui est utilisée avec le journal Windows Test Technologies (WTT), disponible avec Windows Driver Kit. (Voir /logger.)

/doc=Fichier_doc_XSD

Spécifie un fichier XML Schema Definition (XSD) personnalisé pour la validation des parties <DocumentStructure> du fichier XPS. Nous vous recommandons de laisser l'outil utiliser son fichier XSD intégré par défaut à la place d'un fichier personnalisé.

/f

Obligatoire. Spécifie le ou les fichiers à tester. Les caractères génériques de ligne de commande standard, « ? » et « * », peuvent être utilisés dans nom_fichier_ou_modèle. Si des espaces figurent dans le chemin d'accès ou le nom de fichier, mettez l'ensemble du chemin d'accès ou du nom de fichier entre guillemets. L'extension de nom de fichier des fichiers XPS est généralement 'xps', mais cela n'est pas obligatoire.

/logfile=nom_fichier

Spécifie le chemin d'accès et le nom de fichier du fichier journal. Ce commutateur est ignoré à moins que le commutateur /logger ait la valeur File. Si le commutateur /logfile n'est pas utilisé et que le commutateur /logger a la valeur File, le fichier journal est isXPSLog.txt dans le répertoire actif. Si le commutateur /logsplit est utilisé avec une valeur supérieure à 0, le fichier journal spécifié au moyen de /logfile contiendra uniquement le test Installation (Setup). Les autres tests seront dans un ou plusieurs autres fichiers journaux. Pour plus d'informations, reportez-vous à /logprefix et /logsplit plus loin dans ce tableau, et consultez la description de tous les tests, plus loin dans cette rubrique.

/logger=type_journal

Spécifie le type de sortie à générer. Il peut s'agir de l'une des valeurs suivantes :

  • Console (par défaut) – la sortie est transmise vers la fenêtre cmd.exe.

  • File – la sortie est enregistrée dans un fichier texte nommé isXPSLog.txt dans le répertoire actif, à moins qu'un autre chemin d'accès ou nom de fichier soit spécifié au moyen du commutateur /logfile.

  • WTT – la sortie est enregistrée dans un fichier journal Windows Test Technologies nommé isXPSLog.wtl dans le répertoire actif. Cette option est utilisable seulement lorsque le test est exécuté dans l'infrastructure de test de Windows Driver Kit.)

/logprefix=préfixe

Spécifie un préfixe qui sera ajouté au début des noms des fichiers journaux générés lorsque le commutateur /logsplit est utilisé.

Lorsque ce commutateur est utilisé sans commutateur /logsplit explicite (ou avec le commutateur explicite /logsplit=0), l'outil se comporte comme si /logsplit=1 était utilisé (reportez-vous à /logsplit plus loin dans ce tableau).

/logsplit=nombre

Spécifie si et de quelle manière le journal doit être fractionné en plusieurs fichiers.

Lorsque ce commutateur est absent ou lorsqu'il est présent mais a la valeur par défaut 0, aucun fractionnement n'est effectué (à moins que /logprefix soit utilisé nonobstant, auquel cas un fractionnement est effectué et l'outil se comporte comme si /logsplit=1 était spécifié, même si un commutateur explicite /logsplit=0 est spécifié).

Lorsque ce commutateur a la valeur 1, seul le test Installation fera l'objet d'un rapport dans le fichier isXPSlog.txt (ou tout autre fichier spécifié au moyen du commutateur /logfile). Chaque test de fichier (consultez « II. Test de <nom_fichier> » plus loin dans cette rubrique) fera l'objet d'un rapport dans un fichier journal distinct nommé _nom_fichier.log, où nom_fichier est le nom du fichier XPS faisant l'objet du test. Un préfixe précédera le trait de soulignement si le paramètre /logprefix est utilisé.

Lorsqu'une valeur quelconque supérieure à 1 est affectée à ce commutateur, ce dernier indique le nombre de tests de fichier sont inclus dans chaque fichier journal. Seul le test Installation fera l'objet d'un rapport dans le fichier isXPSlog.txt (ou tout autre fichier spécifié au moyen du commutateur /logfile). Les autres tests feront l'objet d'un rapport dans des fichiers journaux distincts nommés _NtoM.log, où NtoM spécifie la plage des fichiers inclus dans le fichier journal. Par exemple, si cinq fichiers correspondent au modèle spécifié par le paramètre /f et que /logsplit a la valeur 2, l'outil génère des fichiers nommés _1to2.log, _3to4.log et _5to5.log. Un préfixe précédera le trait de soulignement si le paramètre /logprefix est utilisé.

Ce commutateur est ignoré à moins que le commutateur /logger ait la valeur File. Consultez la description de tous les tests plus loin dans cette rubrique.

/NoInterleave

Ce commutateur bloque le test Imbrication (Interleave). Consultez la description de tous les tests plus loin dans cette rubrique.

/OnlyOPC

Spécifie que le fichier d'entrée doit être testé pour vérifier s'il est conforme à OPC et non pas à XPS. Le balisage interne des parties spécifiques à OPC est testé. Ce commutateur bloque l'exécution du test de la structure des packages XPS (XPS Package Structure). Consultez la description de tous les tests plus loin dans cette rubrique.

/OnlyPkg

Spécifie que les parties du fichier sont testées uniquement pour garantir qu'elles sont stockées dans le package correctement, qu'elles ont le type de contenu approprié et qu'elles ont des relations correctes entre-elles. Le balisage interne des parties, y compris des parties spécifiques à OPC, n'est pas testé. Ce commutateur bloque l'exécution de la partie du test Validation OPC (OPC Validation) correspondant au test Balisage des relations (Relationships Markup). Il bloque également l'exécution des parties du test XPS Package Structure correspondant aux tests Séquence de documents fixes (Fixed Document Sequence), Document fixe (Fixed Document) et Page fixe (Fixed Page). Enfin, il bloque l'exécution des tests Validation des ressources indépendantes (Validation of Independent Resources). Consultez la description de tous les tests plus loin dans cette rubrique.

/r=Fichier_Rsc_XSD

Spécifie un fichier XML Schema Definition (XSD) personnalisé pour la validation des parties <ResourceDictionary> du fichier XPS. Nous vous recommandons de laisser l'outil utiliser son fichier XSD intégré par défaut à la place d'un fichier personnalisé.

/s

Spécifie que les sous-répertoires seront inclus dans la recherche des fichiers qui correspondent au modèle spécifié au moyen du commutateur /f. Si ce commutateur n'est pas utilisé, les sous-répertoires ne sont pas inclus. Le répertoire parent correspond au répertoire actif à moins qu'un autre répertoire soit spécifié au moyen du commutateur /f.

/SkipResParts

Spécifie que les ressources indépendantes (polices et images) ne sont pas testées. Ce commutateur bloque l'exécution des tests Validation des ressources indépendantes. Consultez la description de tous les tests plus loin dans cette rubrique.

/x=Fichier_S0_XSD

Spécifie un fichier XML Schema Definition (XSD) personnalisé pour la validation des parties <FixedDocumentSequence>, <FixedDocument> et <FixedPage> du fichier XPS. Nous vous recommandons de laisser l'outil utiliser son fichier XSD intégré par défaut à la place d'un fichier personnalisé.

Interprétation des fichiers journaux

La sortie est une série de résultats de test imbriqués. Le début de chaque test est marqué par une ligne "+Start Test" et la fin de chaque test est marquée par une ligne "-End Test". Le test racine correspond au jeu complet de tests pour tous les fichiers spécifiés au moyen du commutateur /f. Par exemple, si le commutateur /f spécifie "s*.xps", le test racine est illustré dans l'exemple ci-dessous.

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

Notez que la ligne "-End Test" fournit le résultat global. Si un fichier quelconque échoue, le test dans son ensemble indique "Fail" (échec).

La section « Log Rollup » résume le test global. « PassRate » correspond au pourcentage de réussite des tests. " Les éléments « Pass », « Warning » et « Fail » indiquent le nombre de tests ayant réussi, ayant réussi avec un avertissement et ayant échoué, respectivement. (« Block » correspond à un état d'échec spécial qui n'est pas utilisé avec la version actuelle de l'outil.)

Le résultat global est répété à la dernière ligne.

Il existe deux types de tests enfants du test racine :

  • Installation – chaque journal contient un et un seul test Installation.

  • <nom_fichier> – un test a lieu pour chaque fichier qui correspond au modèle spécifié au moyen du commutateur /f.

Test Installation

Le test Installation permet de déterminer si l'outil peut s'exécuter, d'analyser sa ligne de commande, ainsi que de charger et compiler les fichiers XSD. Il possède cinq types de tests enfants :

  1. Initialisation du journal – un seul test de ce type est toujours présent. Il est toujours enregistré avec la mention "Pass" (Réussite) car s'il échoue, le journal n'est pas généré.

  2. Analyse de la ligne de commande – un seul test de ce type est toujours présent. S'il échoue, aucun détail n'est signalé, mais l'aide relative à la syntaxe de l'outil s'affiche dans la console.

  3. Chargement et inscription des fichiers XSD personnalisés – il existera entre zéro et trois tests enfants de ce type ; un pour chacun des commutateurs suivants utilisés : /doc, /r et /x. Une fois qu'un fichier XSD a été chargé, l'outil l'inscrit. Si l'espace de noms associé au fichier XSD s'applique à plus d'une partie du balisage XPS, il sera inscrit séparément pour chaque partie à laquelle il s'applique. Par exemple, le fichier XSD de <DocumentStructure> sera inscrit pour les deux parties <DocumentStructure> et <StoryFragments>. Voir l'exemple ci-dessous.

    RemarqueRemarque

    Si un fichier XSD personnalisé ne peut pas être chargé, l'outil ne chargera aucun XSDs restant.Ceux-ci comprennent tous les éléments XSDs intégrés. Par conséquent, les tests suivants ne fonctionnent pas.

  4. Chargement et inscription des fichiers XSD intégrés – à moins qu'un fichier XSD personnalisé ne puisse pas être chargé, au moins neuf de ces tests sont effectués. Un test supplémentaire de ce type est effectué pour chacun des commutateurs /doc, /r et /x qui n'est pas utilisé. Les points correspondant à la puce précédente sur l'inscription des XSDs personnalisés s'appliquent également aux XSDs intégrés.

  5. Compilation XSD – en supposant que tous les fichiers XSD ont été chargés, un test de compilation est effectué et il échoue si l'un quelconque des fichiers XSD ne peut pas être compilé. Si un fichier XSD quelconque ne peut pas être chargé, ce test n'est pas exécuté.

Un exemple de résultat d'un test Installation est fourni ci-dessous. Dans cet exemple, le commutateur /x a été utilisé pour spécifier un schéma S0 auxiliaire.

+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

Pour plus d'informations sur les schémas Dublin référencés dans l'exemple, consultez The Dublin Core Metadata Initiative.

Test de <nom_fichier>

Chaque test d'un fichier particulier se compose des tests enfants suivants :

  • Test Imbrication

  • Test Validation des ressources indépendantes

  • Test Validation OPC

  • Test Structure de package XPS

Test Imbrication

L'outil signale si le fichier est intercalé ou non et, le cas échéant, s'il est intercalé correctement. (Ce test n'est pas effectué si le commutateur /NoInterleave est utilisé.) Ce test présente deux tests enfants :

  1. Test Collection des éléments (Collection of Pieces) – l'outil collecte tous les éléments incorporés du fichier. Ceux-ci incluent tous les fichiers de police et les fichiers image, les fichiers de relation, ainsi que tous les fichiers *.fpage, *.fdoc, *.fdseq et *.frag. Vous trouverez ci-dessous un exemple d'entrée de fichier journal pour ce test. Le package XPS testé possède un document fixe unique doté d'une page fixe unique, d'une police unique et d'une image unique.

    +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. Test Classement des parties (Ordering of Parts) – ce test détermine si l'ordre des parties du fichier est identique dans le répertoire central zip et dans l'en-tête de fichier local zip. Si l'ordre est différent, le test signale un avertissement ("Warn"), car l'interpréteur de commandes Microsoft Windows XP n'autorise pas la modification de fichiers zip dans lesquels l'ordre est différent.

Tests Validation des ressources indépendantes

Dans le cadre des tests Validation des ressources indépendantes, des parties XPS pointant vers des types de contenu de police ou d'image sont recherchées dans le fichier complet et il est vérifié que chaque ressource présente le type de contenu approprié. Par exemple, ils vérifient que la ressource vers laquelle pointe un type de contenu de police est vraiment une police. (Ces tests ne s'exécutent pas si le commutateur /SkipResParts ou /OnlyPkg est utilisé.)

Test Validation OPC

Le test Validation OPC vérifie la conformité du fichier XPS par rapport à la norme OPC.

Ce test possède deux enfants :

  1. Test Balisage des relations – l'outil valide chaque partie <Relationships> du package, à l'exception des relations à partir de la racine du package. Un test enfant est effectué pour chaque partie de ce type. Par exemple, supposez qu'il existe une partie <Relationships> nommée 1.fpage.rels, comme suit.

    <?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>
    

    L'outil retourne alors l'entrée de fichier journal ci-dessous.

    +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
    

    Si le commutateur /OnlyPkg est utilisé, les entrées de fichier journal correspondant au test Balisage des relations vous avertissent simplement qu'aucune validation n'a été effectuée.

  2. Test Balisage des relations du package – l'outil valide la partie <Relationships>, si elle existe, à la racine du package XML Paper Specification (XPS). Par exemple, supposez qu'il existe une partie <Relationships> nommée .rels, comme suit.

    <?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>
    

    L'outil retourne alors l'entrée de fichier journal ci-dessous.

    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
    

    Si la relation à partir de la racine s'effectue avec un objet doté d'un balisage interne, tel qu'une partie <DigitalSignature>, la validation de cette partie <Relationship> inclut, en tant que test enfant, une validation du balisage de la cible. Ce dernier test peut posséder aussi ses propres enfants. Par exemple, dans l'exemple précédent, le test de "Digital Signature Origin part" a en réalité l'entrée d'arborescence de test ci-dessous à la place de "… 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
    

Test Structure de package XPS

Le test Structure de package XPS parcourt pas à pas de façon récursive l'arborescence du package XPS. Ce faisant, il valide le balisage de chaque partie et vérifie qu'il existe une partie <Relationship> pour chaque ressource à laquelle le balisage fait référence. (Ce test n'est pas effectué si le commutateur /OnlyOPC est utilisé.)

Les tests enfants ci-dessous sont inclus.

  1. Test Séquence de documents fixes – le balisage <FixedDocumentSequence> dans le fichier *.fdseq est validé. L'exemple ci-dessous illustre le rapport du journal lorsque le test a réussi.

    +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
    

    L'exemple ci-dessous illustre le rapport du journal lorsque le test échoue ; dans ce cas, parce que le producteur XPS a ajouté par erreur du texte entre les balises <FixedDocumentSequence> de début et de fin.

    +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
    

    Si le commutateur /OnlyPkg est utilisé, les entrées de fichier journal correspondant au test Séquence de documents fixes vous avertissent simplement qu'aucune validation n'a été effectuée.

  2. Test Document fixe – le balisage <FixedDocument> dans un fichier *.fdoc est validé. L'exemple ci-dessous illustre le rapport du journal lorsque le test a réussi.

    +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
    

    L'exemple ci-dessous illustre le rapport du journal lorsque le test échoue ; dans ce cas, parce que la partie <FixedDocument> contient une référence à une page (<PageContent Source="../Pages/FixedPage_3.fpage" />) qui ne figure pas dans le package. Notez que le journal fournit la liste des règles qui peuvent ne pas avoir été respectées. Vous pouvez rechercher les erreurs dans les normes XPS, lesquelles peuvent être téléchargées à la page XPS: Specification and License Downloads.

    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 
    

    Si le commutateur /OnlyPkg est utilisé, les entrées de fichier journal correspondant au test Document fixe vous avertissent simplement qu'aucune validation n'a été effectuée.

  3. Test Page fixe – le balisage <FixedPage> dans un fichier *.fpage est validé. L'exemple ci-dessous illustre le rapport du journal lorsque le test a réussi.

    +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
    

    L'exemple ci-dessous illustre le rapport du journal lorsque le test échoue ; dans ce cas, parce que la partie <FixedPage> contient un attribut qui n'est pas déclaré dans le schéma XPS. Le journal identifie la règle qui n'est pas respectée et spécifie la position exacte du caractère où le balisage erroné commence.

    +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 
    

    Si le commutateur /OnlyPkg est utilisé, les entrées de fichier journal correspondant au test Page fixe vous avertissent simplement qu'aucune validation n'a été effectuée.

  4. Test Balisage personnalisé (Custom Markup) – ce test vérifie la conformité aux règles qui ne sont pas imposées par les fichiers XSD eux-mêmes, telles que M2.74, M3.7 à M3.14, et M4.3. Ces règles figurent dans les normes XPS, lesquelles peuvent être téléchargées à la page XPS: Specification and License Downloads.

  5. Test Relations de page (Page Relationships) – ce test vérifie chaque référence à une partie de ressource (police, image, dictionnaire de ressources distant ou profil ICC [International Color Consortium]) dans le balisage <FixedPage> (le composant nom_page.fpage d'un package XPS) et vérifie qu'il existe une relation de ressources requises correspondant à cette ressource (dans le composant nom_page.fpage.rels) et que cette relation pointe vers le type de partie approprié. Un test enfant est effectué pour chaque ressource. L'exemple ci-dessous illustre une entrée de fichier journal pour une relation à une police.

    +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. Test Parties non référencées (Unreferenced Parts) – si des parties non référencées sont détectées dans le package, le journal indique un avertissement.

L'ordre des tests enfants dans le test Structure de package XPS est le suivant :

  1. Tester la partie <FixedDocumentSequence>.

  2. Tester la première (ou prochaine) partie <FixedDocument> référencée dans la partie <FixedDocumentSequence>.

  3. Tester la première (ou prochaine) partie <FixedPage> référencée dans la partie <FixedDocument>.

  4. Tester le balisage personnalisé, le cas échéant, dans la partie <FixedPage>.

  5. Tester la partie <Relationships>, le cas échéant, de la partie <FixedPage>. Ce test inclut les tests enfants ci-dessous.

    1. Tester la première (ou prochaine) partie <Relationship> dans la partie <Relationships>. Les relations peuvent être des polices, des images, des dictionnaires de ressources distants ou des profils ICC (International Color Consortium).

    2. Répéter l'étape a pour chaque relation.

  6. Répéter les étapes 3 à 5 pour chaque page du document.

  7. Répéter les étapes 2 à 6 pour chaque document de la séquence.

  8. Tester les parties non référencées.

L'exemple ci-dessous illustre le résultat complet du test Structure de package XPS pour un package doté d'un document (de deux pages) avec une police unique sur chaque page et une image sur la seconde page. Notez que sur la seconde page du second document, la partie <FixedPage> possède une référence à un attribut « Stretch » qui n'est pas déclaré dans la norme XPS. Cela entraîne l'échec de l'outil pour cette page et le package.

+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

Configuration requise

.NET Framework 3.0

Voir aussi

Autres ressources

XPS : spécifications et téléchargement de licence (page éventuellement en anglais)

XPS et Windows Vista (page éventuellement en anglais)

Documents XPS : aperçu des API de création de documents XML Paper Specification (page éventuellement en anglais)

Programmation des lab de documents XPS et développement de l'affichage des documents XPS (page éventuellement en anglais)