Condividi tramite


Strumento di Conformità isXPS

Aggiornamento: novembre 2007

Lo strumento di conformità isXPS (isXPS.exe) verifica la conformità di un file rispetto alle specifiche di XML Paper Specification (XPS)Open Packaging Conventions (OPC).

L'utente può scaricare le specifiche di XPS e di OPC all'indirizzo XPS: Specification and License Downloads (informazioni in lingua inglese).

Funzionalità

  • Genera un report dettagliato dei test eseguiti.

  • Consente di eseguire il test di più file in un processo batch.

  • Fornisce una descrizione di ciascun errore in tutti i file sottoposti a test.

  • Suggerisce in modo intelligente quali regole possono esser state violate in base a ciascun errore trovato.

  • Supporta le opzioni che attivano la verifica personalizzata; ad esempio solo la verifica della conformità di OPC.

Sintassi

isXPS/f=file_name_or_pattern [options]

Nota

In tutte le opzioni, è possibile utilizzare il trattino ("-") al posto della barra obliqua ("/") e i due punti (":") al posto del simbolo dell'uguale ("=").

Opzioni

Opzione

Descrizione

/?

Fornisce supporto per lo strumento visualizzato nella finestra cmd.exe, opzione che blocca l'esecuzione di tutti i test. Tale opzione determina anche la registrazione di un errore da parte dello strumento. In questo modo si garantisce che non vi siano report di "test superati" accidentali durante l'esecuzione del test nella relativa infrastruttura del Windows Driver Kit.)

/BadDir=path

Specifica una directory in cui vengono copiati o rimossi i file che non superano il test di conformità. Se si utilizza l'opzione /DelBad, questi file verranno spostati. Se l'opzione non viene utilizzata, i file verranno copiati.

/DelBad

Specifica l'eliminazione dalla directory corrente dei file che non superano il test di conformità. Se viene utilizzata l'opzione /BadDir, i file verranno spostati nella directory specificata dall'ultima opzione. Se non si utilizza l'opzione /BadDir, questi verranno eliminati.

/device="device_string"

Specifica una stringa della periferica utilizzata dal logger di Windows Test Technologies (WTT), in dotazione con il Windows Driver Kit. Per ulteriori informazioni, vedere /logger.

/doc=Doc_XSD_file

Specifica un file di XML Schema Definition (XSD) personalizzato per la convalida delle parti di <DocumentStructure> del file di XPS. È consigliabile consentire allo strumento di utilizzare il file XSD predefinito incorporato anziché un file personalizzato.

/f

È obbligatorio e specifica i file di installazione da verificare. In file_name_or_pattern è possibile utilizzare caratteri jolly, "?" e "*", della linea di comando standard. Se il percorso o il nome file contiene degli spazi, l'intero percorso o il nome file deve essere racchiuso tra virgolette. L'estensione per i file XPS di solito è 'xps', anche se non è obbligatoria.

/logfile=file_name

Specifica il percorso e il nome del file di log. Questa opzione viene ignorata a meno che l'opzione /logger non sia impostata su File. Se non viene utilizzata l'opzione /logfile e /logger è impostata su File, il file di log sarà isXPSLog.txt nella directory corrente. Se viene utilizzata l'opzione /logsplit con un valore maggiore di 0, il file di log specificato con /logfile conterrà solo il test di installazione. Gli altri test saranno presenti in uno o più file di log differenti. Per ulteriori informazioni, vedere di seguito /logprefix e /logsplit in questa tabella e più avanti in questo argomento per una descrizione di tutti i test.

/logger=log_type

Specifica il tipo di output da generare che può essere uno dei valori seguenti:

  • Console (impostazione predefinita) – l'output viene trasferito nella finestra di cmd.exe.

  • File - l'output viene salvato in un file di testo denominato isXPSLog.txt nella directory corrente, a meno che sia specificato un altro percorso o nome file con l'opzione /logfile.

  • WTT - l'output viene salvato in un file di log di Windows Test Technologies denominato isXPSLog.wtl nella directory corrente. Questa opzione è utile solo quando il test viene eseguito nella relativa infrastruttura del Windows Driver Kit.)

/logprefix=prefix

Specifica un prefisso aggiunto all'inizio dei nomi dei file di log prodotti quando si utilizza l'opzione /logsplit.

Quando questa opzione viene utilizzata senza l'esplicita opzione /logsplit (o con un'opzione /logsplit=0 esplicita), lo strumento si comporta come se fosse /logsplit=1 (vedere /logsplit di seguito nella tabella).

/logsplit=number

Specifica se, e come, il log viene diviso in più file.

Quando questa opzione è assente o è presente ma non impostata su 0, cioè il valore predefinito, non vi sarà alcuna suddivisione (a meno che si utilizzi comunque /logprefix nel cui caso vi sarà la divisione e lo strumento si comporterà come se fosse /logsplit=1 anche quando è presente un'opzione /logsplit=0 esplicita).

Quando questa opzione è impostata su 1, solo il test di installazione verrà riportato nel file isXPSlog.txt (o in qualsiasi file specificato con l'opzione /logfile). Ogni test di file (vedere di seguito "II. Test <file_name>" in questo argomento) verrà riportato in un file di log separato denominato _file_name.log in cui file_name è il nome del file XPS sottoposto a test. Se si utilizza il parametro /logprefix, sarà presente un prefisso prima del carattere di sottolineatura.

Quando questa opzione è impostata su un qualsiasi valore superiore a 1, significa che molti test di file sono inclusi in ciascun file di log. Solo il test di installazione verrà riportato nel file isXPSlog.txt (o in qualsiasi file specificato con l'opzione /logfile). Gli altri test verranno riportati in file di log differenti denominati _NtoM.log, in cui NtoM indica la gamma di file inclusi in un file di log. Ad esempio, se cinque file corrispondono al modello specificato con il parametro /f e /logsplit è impostato su 2, lo strumento genererà dei file denominati _1to2.log, _3to4.log, e _5to5.log. Se si utilizza il parametro /logprefix, sarà presente un prefisso prima del carattere di sottolineatura.

Questa opzione viene ignorata a meno che l'opzione /logger non sia impostata su File. Per una descrizione di tutti i test, vedere più avanti in questo argomento.

/NoInterleave

Questa opzione blocca il test con interfoliazione. Per una descrizione di tutti i test, vedere più avanti in questo argomento.

/OnlyOPC

Specifica che il file di input debba essere verificato solo per la conformità di OPC e non anche per la conformità di XPS. Viene verificato il markup interno delle parti specifiche di OPC. Questa opzione blocca l'esecuzione del test di struttura del package XPS. Per una descrizione di tutti i test, vedere più avanti in questo argomento.

/OnlyPkg

Specifica che le parti del file vengano verificate solo per assicurarsi che siano memorizzate correttamente nel package, contengano il tipo di contenuto corretto e che vi siano relazioni corrette tra loro. Non viene verificato il markup interno delle parti, incluse quelle specifiche di OPC. Questa opzione blocca l'esecuzione della parte di test relativa alle relazioni di markup del test di convalida OPC. Blocca inoltre l'esecuzione del test di sequenza dei documenti fissi, quello dei documenti fissi oppure le parti del test di pagina fissa del test della struttura del package XPS. Infine, blocca l'esecuzione dei test di convalida delle risorse indipendenti. Per una descrizione di tutti i test, vedere più avanti in questo argomento.

/r=Rsc_XSD_file

Specifica un file di XML Schema Definition (XSD) personalizzato per la convalida delle parti <ResourceDictionary> del file di XPS. È consigliabile consentire allo strumento di utilizzare il file XSD predefinito incorporato anziché un file personalizzato.

/s

Specifica che le sottodirectory verranno incluse nella ricerca di file che corrispondono al modello specificato con l'opzione /f. Se questa opzione non viene utilizzata, le sottodirectory non vengono incluse. La directory padre è la directory corrente a meno che non ne sia specificata una differente mediante l'opzione /f.

/SkipResParts

Indica che le risorse indipendenti (tipi di carattere e immagini) non vengono sottoposte a test. Questa opzione blocca l'esecuzione dei test di convalida delle risorse indipendenti. Per una descrizione di tutti i test, vedere più avanti in questo argomento.

/x=S0_XSD_file

Specifica un file di XML Schema Definition (XSD) personalizzato per la convalida delle parti <FixedDocumentSequence>, <FixedDocument> e <FixedPage> del file di XPS. È consigliabile consentire allo strumento di utilizzare il file XSD predefinito incorporato anziché un file personalizzato.

Interpretazione del file di log

L'output è costituito da una serie di risultati di test nidificati. L'inizio di ciascun test è contrassegnato da una riga "+Start Test", mentre la fine è contrassegnata da una riga "-End Test". Il test principale costituisce l'intero gruppo di test di tutti i file specificati mediante l'opzione /f). Ad esempio, se l'opzione /f specifica "s*.xps", il test principale viene visualizzato nell'esempio seguente.

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

Si noti che la riga "-End Test" fornisce il risultato completo. In caso di errore di un file qualsiasi, l'intero test verrà contrassegnato come "Non superato".

La sezione "Rollup di log" sintetizza l'intero test. La "Frequenza di superamento" indica la percentuale dei test completati correttamente. "Test superato", "Avviso" e "Non superato" indicano rispettivamente il numero di test completati correttamente, quelli completati con un avviso e quelli non superati. "Blocchi" è uno stato di errore particolare non utilizzato con la versione corrente dello strumento.

Il risultato totale viene ripetuto nell'ultima riga.

Sono disponibili due tipi di test figli del test padre:

  • Installazione - è presente esattamente un test di installazione in ogni log.

  • <file_name> - è presente un test per ogni file che corrisponde al modello specificato mediante l'opzione /f.

Test di installazione

Il test di installazione viene utilizzato per determinare se è possibile eseguire lo strumento, analizzare la riga di comando, caricare e compilare i file di XSD. Sono disponibili cinque tipi di test figli:

  1. Inizializzazione del logger - è presente esattamente uno di questi ed è sempre collegato come "Test superato" perché in caso contrario, il log non verrà generato in alcun modo.

  2. Analisi della linea di comando - è presente esattamente uno di questi e in caso di errore, non viene riportato alcun dettaglio, ma consente di trasferire la sintassi dello strumento alla console.

  3. Caricamento e registrazione dei file XSD personalizzati - sono presenti da zero a tre test figli di questo tipo; uno per ciascuna delle opzioni seguenti utilizzate: /doc, /r e /x. Dopo il caricamento del file di XSD, lo strumento ne eseguirà la registrazione. Se lo spazio dei nomi associati a XSD si applica a più di una parte del markup di XPS, la registrazione avverrà separatamente per ogni parte a cui viene applicata. Ad esempio, XSD di <DocumentStructure> verrà registrato per entrambe le parti <DocumentStructure> e <StoryFragments>. Vedere l'esempio riportato di seguito.

    Nota

    Se non è possibile caricare un file personalizzato di XSD, lo strumento non caricherà i restanti XSD. Sono inclusi tutti gli XSD incorporati. Di conseguenza, la maggior parte dei test successivi non verranno eseguiti.

  4. Caricamento e registrazione dei file XSD incorporati - a meno che non sia possibile caricare un XSD personalizzato, saranno disponibili almeno nove di questi test. Sarà presente almeno un test in più per ognuna delle opzioni /doc, /r e /x che non viene utilizzata. I punti applicati nel precedente punto elenco sulla registrazione dei XSD personalizzati si applicano anche agli XSD personalizzati.

  5. Compilazione XSD - se tutti i file XSD vengono caricati, è disponibile un test di compilazione e non verrà superato qualora non sia possibile compilare uno qualsiasi dei file XSD. Se non è possibile caricare un file qualsiasi di XSD, questo test non viene eseguito.

L'esempio seguente riporta l'esito di un test di installazione nel quale è stata utilizzata l'opzione /x per specificare uno schema S0 alternativo.

+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

Per informazioni sugli schemi di Dublino a cui si fa riferimento nell'esempio, vedere The Dublin Core Metadata Initiative (informazioni in lingua inglese).

Test <file_name>

Ogni test di un particolare file è composto dai seguenti test figli:

  • Test con interfoliazione

  • Test di convalida delle risorse indipendenti

  • Test di convalida OPC

  • Test di struttura del package XPS

Test con interfoliazione

Lo strumento riporta se il file presenta o meno interfoliazione ed eventualmente se questa è stata eseguita correttamente. Il test non viene eseguito se non si utilizza l'opzione /NoInterleave. Sono disponibili due test figli:

  1. Test di raccolta pezzi - lo strumento raccoglie tutti i pezzi incorporati del file che includono tutti i file di tipo carattere e immagine, i file delle relazioni e ciascun file *.fpage, *.fdoc, *.fdseq, e *.frag. Di seguito è riportato un esempio della voce del log per questo test. Il package XPS sottoposto a test presenta un unico documento fisso con un'unica pagina fissa, un unico tipo di carattere e un'unica immagine.

    +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 di ordinamento delle parti - questo test determina se l'ordine delle parti del file è identico nella directory centrale Zip e nell'intestazione del file locale Zip. Se l'ordine è diverso, il test restituisce un "Avviso", perché lo shell di Microsoft Windows XP non consente di modificare i file zip in cui l'ordine è differente.

Test di convalida delle risorse indipendenti

I test di convalida delle risorse indipendenti cercano l'intero file per le parti di XPS che puntano a tipi di carattere o contenuto di immagine e i test verificano che ogni risorsa presenti il tipo di contenuto corretto; ad esempio, verificano che la risorsa a cui punta un tipo di contenuto carattere sia effettivamente un tipo di carattere. Questi test non vengono eseguiti se è utilizzata l'opzione /SkipResParts o /OnlyPkg.

Test di convalida OPC

Il test di convalida OPC controlla la conformità del file di XPS alle specifiche di OPC.

Il test presenta due figli:

  1. Test di markup delle relazioni - lo strumento convalida ogni parte <Relationships> nel package a eccezione delle relazioni derivanti dalla radice dello stesso. Per ogni parte è disponibile un test figlio; ad esempio, se vi è una parte <Relationships> denominata 1.fpage.rels come riportato di seguito.

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

    Lo strumento dovrebbe restituire la seguente voce di log.

    +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
    

    Se viene utilizzata l'opzione /OnlyPkg, le voci di log per il test di markup delle relazioni avvertiranno solo che non è stata eseguita alcuna convalida.

  2. Test di markup delle relazioni del package - lo strumento convalida la parte <Relationships>, se presente, alla radice del package di XML Paper Specification (XPS); ad esempio, se vi è una parte <Relationships> denominata .rels come riportato di seguito.

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

    Lo strumento dovrebbe restituire la seguente voce di log.

    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
    

    Se la relazione dalla radice fa riferimento ha un oggetto che dispone di markup interno, come una parte <DigitalSignature>, la convalida di tale parte di <Relationship> dovrebbe includere, come test figlio, una convalida di markup della destinazione. E l'ultimo test potrebbe avere dei propri figli; ad esempio, nel caso precedente, il test della "Digital Signature Origin part" presentava effettivamente la voce della struttura ad albero del test seguente al posto di "… 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 di struttura del package XPS

Il test della struttura del package XPS scorre in modo ricorsivo la struttura ad albero del package XPS. In questo modo convalida il markup di ciascuna parte e verifica che vi sia una parte di <Relationship> per ogni risorsa a cui si fa riferimento nel markup. Il test non viene eseguito se non viene utilizzata l'opzione**/OnlyOPC**.

Sono inclusi i test figli riportati di seguito.

  1. Test di sequenza dei documenti fissi - viene convalidato il markup di <FixedDocumentSequence> nel file *.fdseq. Nell'esempio riportato di seguito viene illustrato il report del log in caso di test con esito positivo.

    +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'esempio seguente mostra il report del log quando il test non viene superato, in questo caso perché il producer XPS ha aggiunto erroneamente del testo tra i tag di inizio e fine di <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
    

    Se viene utilizzata l'opzione /OnlyPkg, le voci di log per il test della sequenza di documenti fissi avvertiranno solo che non è stata eseguita alcuna convalida.

  2. Test dei documenti fissi - viene convalidato il markup di <FixedDocument> in un file *.fdoc. Nell'esempio riportato di seguito viene illustrato il report del log in caso di superamento del test.

    +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'esempio seguente mostra il report del log quando il test non viene superato, in questo caso perché la parte di <FixedDocument> contiene un riferimento a una pagina (<PageContent Source="../Pages/FixedPage_3.fpage" />) che non è presente nel package. Si noti che il log fornisce un elenco di regole che possono esser state violate. L'utente può cercare gli errori nelle specifiche di XPS, scaricabili all'indirizzo XPS: Specification and License Downloads (informazioni in lingua inglese).

    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 
    

    Se viene utilizzata l'opzione /OnlyPkg, le voci di log per il test dei documenti fissi avvertiranno solo che non è stata eseguita alcuna convalida.

  3. Test della pagina fissa - viene convalidato il markup di <FixedPage> in un file *.fpage. Nell'esempio riportato di seguito viene illustrato il report del log in caso di superamento del test.

    +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'esempio seguente mostra il report del log quando il test non viene superato, in questo caso perché la parte di <FixedPage> contiene un attributo non dichiarato nello schema XPS. Il log identifica la regola violata e specifica la posizione esatta dei caratteri in cui ha inizio il markup errato.

    +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 
    

    Se viene utilizzata l'opzione /OnlyPkg, le voci di log per il test della pagina fissa avvertiranno solo che non è stata eseguita alcuna convalida.

  4. Test di markup personalizzato - questo test verifica la conformità alle regole non impostate dagli stessi file XSD, come M2.74, M3.7 fino a M3.14 e M4.3. L'utente può cercare queste regole nelle specifiche di XPS, scaricabili all'indirizzo XPS: Specification and License Downloads (informazioni in lingua inglese).

  5. Test di relazioni tra pagine - questo test controlla ogni riferimento a una parte di risorse (un tipo di carattere, immagine, dizionario di risorse remote o profilo ICC [International Color Consortium]) nel markup <FixedPage> (il componente page_name.fpage di un package XPS) e verifica che vi sia una relazione di risorsa necessaria corrispondente con tale risorsa (nel componente page_name.fpage.rels) e che la relazione punti al tipo corretto di parte. Per ogni risorsa è disponibile un test figlio. Nell'esempio seguente viene mostrato una voce di log per una relazione a un tipo di carattere.

    +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 di parti senza riferimenti - se si trovano parti senza riferimenti nel package, il log visualizzerà un avviso.

Di seguito è riportato l'ordine dei test figli nel test di struttura del package XPS.

  1. Verificare la parte <FixedDocumentSequence>.

  2. Verificare la prima (o successiva) parte <FixedDocument> a cui si fa riferimento nella parte <FixedDocumentSequence>.

  3. Verificare la prima (o successiva) parte <FixedPage> a cui si fa riferimento nella parte <FixedDocument>.

  4. Verificare il markup personalizzato, se presente, nella parte <FixedPage>.

  5. Verificare la parte <Relationships>, se presente, della parte <FixedPage>. Questo test dispone dei seguenti test figli.

    1. Verificare la prima (o successiva) parte <Relationship> nella parte <Relationships>. Le relazioni possono fare riferimento a tipi di carattere, immagini, dizionari di risorse remote e profili ICC (International Color Consortium).

    2. Ripetere il passaggio a per ogni relazione.

  6. Ripetere i passaggi da 3 a 5 per ogni pagina nel documento.

  7. Ripetere i passaggi da 2 a 6 per ogni documento nella sequenza.

  8. Eseguire il test per parti senza riferimenti.

L'esempio seguente mostra un risultato completo del test di struttura per il package XPS per un package con un documento (a due pagine), un tipo di carattere su ciascuna pagina e un'immagine sulla seconda pagina. Si noti che sulla seconda pagina del secondo documento, la parte <FixedPage> presenta un riferimento a un attributo "Stretch" che non è stato dichiarato nelle specifiche di XPS. Per questo motivo lo strumento supera questa pagina e il 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

Requisiti

.NET Framework 3,0

Vedere anche

Altre risorse

XPS: Specifiche e download delle licenze (XPS: Specification and License Downloads)

XPS e Windows Vista (XPS and Windows Vista)

Programmazione del laboratorio dei documenti XPS ed estensione del laboratorio per la visualizzazione di documenti XPS (Programming XPS Documents Lab and Extending the XPS Document Viewing Experience Lab)