다음을 통해 공유


isXPS.exe(isXPS 규칙 도구)

isXPS 규칙 도구(isXPS.exe)는 XPS(XML Paper Specification) 및 OPC(Open Packaging Conventions) 사양을 파일이 준수하는지 테스트합니다.

XPS: Specification and License Downloads에서 XPS 및 OPC 사양을 다운로드할 수 있습니다.

기능

  • 수행하는 테스트의 대한 자세한 보고서를 생성합니다.

  • 일괄 처리 작업에서 여러 파일을 테스트할 수 있습니다.

  • 테스트하는 모든 파일의 모든 실패에 대한 설명을 제공합니다.

  • 발견된 각 실패가 위반했을 수도 있는 규칙을 지능적으로 제안합니다.

  • 사용자 지정 테스트(예: OPC 준수만 테스트하는 경우)를 사용하도록 설정하는 스위치를 지원합니다.

구문

isXPS /f=file_name_or_pattern [options]

참고

모든 스위치에서 슬래시("/") 대신 하이픈("-")을 사용하고 등호("=") 대신 콜론(":")을 사용할 수 있습니다.

Aa348104.collapse_all(ko-kr,VS.110).gif스위치

스위치

설명

/?

도구에 대한 도움말이 cmd.exe 창에 표시됩니다. 이 스위치는 모든 테스트의 실행을 차단합니다. 또한 이 스위치를 사용하면 도구에서 실패를 보고합니다. 이렇게 하면 Windows Driver Kit의 테스트 인프라에서 테스트가 실행될 때 "통과" 보고서가 실수로 작성되지 않습니다.

/BadDir=path

규칙 준수 테스트에 실패한 파일이 복사 또는 이동하는 디렉터리를 지정합니다. 이러한 파일은 /DelBad 스위치가 사용된 경우 이동하고 사용되지 않은 경우 복사됩니다.

/DelBad

규칙 준수 테스트에 실패한 파일이 현재 디렉터리에서 삭제되도록 지정합니다. /BadDir 스위치와 함께 사용될 경우 파일은 이 스위치에 지정된 디렉터리로 이동합니다. /BadDir 스위치가 사용되지 않을 경우 파일은 삭제됩니다.

/device="device_string"

Windows Driver Kit에서 다운로드할 수 있는 WTT(Windows Test Technologies) 로거와 함께 사용되는 사용자 지정 장치 문자열을 지정합니다. /logger를 참조하십시오.

/doc=Doc_XSD_file

XPS 파일의 <DocumentStructure> 부분에 대한 유효성 검사를 위한 사용자 지정 XSD(XML 스키마 정의) 파일을 지정합니다. 사용자 지정 파일 대신에 기본 제공 XSD 파일을 도구에서 사용하도록 하는 것이 좋습니다.

/f

필수 항목으로 테스트할 파일을 지정합니다. 표준 명령줄 와일드카드 문자인 "?" 및 "*"를 file_name_or_pattern에서 사용할 수 있습니다. 경로 또는 파일 이름에 공백이 포함된 경우 전체 경로 또는 파일 이름을 따옴표로 묶습니다. XPS 파일의 파일 확장명은 일반적으로 'xps'이지만 반드시 그럴 필요는 없습니다.

/logfile=file_name

로그 파일의 경로와 파일 이름을 지정합니다. /logger 스위치가 File로 설정되지 않은 경우 이 스위치는 무시됩니다. /logfile 스위치가 사용되지 않고 /logger 스위치가 File로 설정된 경우 로그 파일은 현재 디렉터리의 isXPSLog.txt입니다. /logsplit 스위치에서 0보다 큰 값이 사용될 경우 /logfile과 함께 지정된 로그 파일은 Setup 테스트만 포함합니다. 다른 테스트는 하나 이상의 다른 로그 파일에 있습니다. 자세한 내용은 이 표의 뒤에 있는 /logprefix/logsplit를 참조하고 모든 테스트에 대한 설명은 이 항목의 뒷부분을 참조하십시오.

/logger=log_type

생성할 출력의 종류를 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.

  • Console(기본값) - 출력이 cmd.exe 창에 스트림됩니다.

  • File - 다른 경로나 파일 이름이 /logfile 스위치와 함께 지정되지 않은 경우 출력은 현재 디렉터리의 XPSLog.txt라는 텍스트 파일에 저장됩니다.

  • WTT - 출력은 현재 디렉터리의 isXPSLog.wtl이라는 Windows Test Technologies 로그 파일에 저장됩니다. 이 옵션은 Windows Driver Kit의 테스트 인프라에서 테스트가 실행될 경우에만 사용할 수 있습니다.

/logprefix=prefix

/logsplit 스위치가 사용될 때 생성되는 로그 파일의 파일 이름에서 시작 부분에 추가될 접두사를 지정합니다.

이 스위치가 명시적 /logsplit 스위치나 명시적 /logsplit=0 스위치 없이 사용될 경우 도구는 /logsplit=1인 것처럼 작동합니다. 이 표의 뒤에서 /logsplit를 참조하십시오.

/logsplit=number

로그가 여러 파일로 분할되는지 여부 및 방법을 지정합니다.

이 스위치가 없거나 있더라도 기본값인 0으로 설정된 경우 분할이 없습니다. 단, /logprefix가 사용되지 않을 경우에만 해당하며 이 스위치가 사용될 경우에는 분할이 수행되며, 명시적 /logsplit=0 스위치가 있더라도 도구는 /logsplit=1인 것처럼 작동합니다.

이 스위치가 1로 설정된 경우 Setup 테스트만 XPSlog.txt 또는 /logfile 스위치와 함께 지정된 파일에서 보고됩니다. 각 파일 테스트(이 항목의 뒤에 있는 "II. <file_name> 테스트" 참조)는 _file_name.log라는 별개의 로그 파일에서 보고됩니다. 여기서 file_name은 테스트하는 XPS 파일의 이름입니다. /logprefix 매개 변수가 사용될 경우 밑줄 앞에 접두사가 있습니다.

이 스위치가 1보다 큰 값으로 설정된 경우 각 로그 파일에 포함되는 파일 테스트 수를 나타냅니다. Setup 테스트만 XPSlog.txt 또는 /logfile 스위치와 함께 지정된 파일에서 보고됩니다. 다른 테스트는 _NtoM.log라는 별개의 로그 파일에서 보고됩니다. 여기서 NtoM은 로그 파일에 포함되는 파일의 범위를 지정합니다. 예를 들어 5개의 파일이 /f 매개 변수와 함께 지정된 패턴과 일치하고 /logsplit가 2로 설정된 경우 도구에서는 _1to2.log, _3to4.log 및 _5to5.log라는 파일이 생성됩니다. /logprefix 매개 변수가 사용될 경우 밑줄 앞에 접두사가 있습니다.

/logger 스위치가 File로 설정되지 않은 경우 이 스위치는 무시됩니다. 모든 테스트에 대한 설명은 이 항목의 뒷부분을 참조하십시오.

/NoInterleave

이 스위치는 인터리브 테스트를 차단합니다. 모든 테스트에 대한 설명은 이 항목의 뒷부분을 참조하십시오.

/OnlyOPC

입력 파일에서 XPS 준수가 아니라 OPC 준수만 테스트하도록 지정합니다. OPC 관련 부분의 내부 태그가 테스트됩니다. 이 스위치는 XPS 패키지 구조 테스트가 실행되지 않게 차단합니다. 모든 테스트에 대한 설명은 이 항목의 뒷부분을 참조하십시오.

/OnlyPkg

파일의 일부가 패키지에 올바르게 저장되었으며 올바른 형식의 콘텐츠를 갖고 있으며 서로 간에 올바른 관계를 갖고 있는지 확인하기 위해서만 파일의 일부를 테스트하도록 지정합니다. OPC 관련 부분을 비롯한 내부 태그는 테스트되지 않습니다. 이 스위치는 OPC 유효성 검사 테스트의 관계 태그 테스트 부분이 실행되지 않게 차단합니다. 또한 XPS 패키지 구조 테스트의 고정 문서 시퀀스 테스트, 고정 문서 테스트 또는 고정된 페이지 테스트 부분이 실행되지 않게 차단합니다. 마지막으로 이 스위치는 독립 리소스의 유효성 검사 테스트가 실행되지 않게 차단합니다. 모든 테스트에 대한 설명은 이 항목의 뒷부분을 참조하십시오.

/r=Rsc_XSD_file

XPS 파일의 <ResourceDictionary> 부분에 대한 유효성 검사를 위한 사용자 지정 XSD(XML 스키마 정의) 파일을 지정합니다. 사용자 지정 파일 대신에 기본 제공 XSD 파일을 도구에서 사용하도록 하는 것이 좋습니다.

/s

/f 스위치를 사용하여 지정한 패턴과 일치하는 파일의 검색에 하위 디렉터리가 포함되도록 지정합니다. 이 스위치가 사용되지 않을 경우 하위 디렉터리가 포함되지 않습니다. /f 스위치를 사용하여 다른 디렉터리가 지정되지 않은 경우 부모 디렉터리가 현재 디렉터리입니다.

/SkipResParts

독립 리소스(글꼴 및 이미지)가 테스트되지 않도록 지정합니다. 이 스위치는 독립 리소스의 유효성 검사 테스트가 실행되지 않게 차단합니다. 모든 테스트에 대한 설명은 이 항목의 뒷부분을 참조하십시오.

/x=S0_XSD_file

XPS 파일의 <FixedDocumentSequence>, <FixedDocument> 및 <FixedPage> 부분에 대한 유효성 검사를 위한 사용자 지정 XSD(XML 스키마 정의) 파일을 지정합니다. 사용자 지정 파일 대신에 기본 제공 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"은 현재 버전의 도구에서 사용되지 않는 특수한 실패 상태입니다.

마지막 줄에서 전체 결과가 반복됩니다.

루트 테스트의 자식 테스트에는 두 가지 종류가 있습니다.

  • Setup - 각 로그에 정확히 하나의 Setup 테스트가 있습니다.

  • <file_name> - /f 스위치와 함께 지정된 패턴과 일치하는 각 파일에 대한 테스트가 있습니다.

Aa348104.collapse_all(ko-kr,VS.110).gifSetup 테스트

Setup 테스트는 도구를 실행할 수 있는지 여부를 확인하고 해당 명령줄을 구문 분석하며 XSD 파일을 로드 및 컴파일하는 데 사용됩니다. 다음과 같은 다섯 가지 종류의 자식 테스트가 있습니다.

  1. 로거 초기화 - 이 테스트는 정확히 하나가 있습니다. 실패할 경우 로그가 생성되지 않으므로 항상 "Pass"로 기록됩니다.

  2. 명령줄 구문 분석 - 이 테스트는 정확히 하나가 있습니다. 실패할 경우 세부 정보가 보고되지 않지만 도구의 구문에 대한 도움말이 콘솔에 스트리밍됩니다.

  3. 사용자 지정 XSD 파일의 로드 및 등록 - 이러한 자식 테스트는 0개에서 3개가 있습니다. 사용된 /doc, /r/x 스위치마다 테스트가 하나씩 있습니다. XSD 파일이 로드된 후 도구에서 이 파일을 등록합니다. XSD에 연결된 네임스페이스가 XPS 태그에서 둘 이상의 부분에 적용될 경우 적용되는 각 부분에 대해 별개로 등록됩니다. 예를 들어 <DocumentStructure> XSD는 <DocumentStructure> 및 <StoryFragments> 부분 모두에 대해 등록됩니다. 아래 예제를 참조하십시오.

    참고

    사용자 지정 XSD 파일을 로드할 수 없는 경우 도구는 나머지 XSD를 로드하지 않습니다.여기에는 기본 제공되는 모든 XSD가 포함됩니다. 결과적으로 대부분의 이후 테스트가 실행되지 않습니다.

  4. 기본 제공 XSD 파일 로드 및 등록 - 사용자 지정 XSD를 로드할 수 없는 경우가 아닌 경우 이 테스트가 적어도 9개 있습니다. 사용되지 않는 각 /doc, /r/x 스위치에 대한 하나의 추가 테스트가 있습니다. 사용자 지정 XSD의 등록에 대한 앞의 글머리 기호의 내용이 기본 제공 XSD에도 적용됩니다.

  5. XSD 컴파일 - 모든 XSD 파일이 로드된다는 가정 하에 하나의 컴파일 테스트가 존재하며 XSD 파일 중 컴파일할 수 없는 파일이 있으면 이 테스트가 실패합니다. XSD 파일을 로드할 수 없는 경우 이 테스트는 실행되지 않습니다.

다음은 Setup 테스트의 결과 예제입니다. 이 예제에서 대체 S0 스키마를 지정하기 위해 /x 스위치가 사용되었습니다.

+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 스키마에 대한 자세한 내용은 The Dublin Core Metadata Initiative를 참조하십시오.

Aa348104.collapse_all(ko-kr,VS.110).gif<file_name> 테스트

특정 파일의 각 테스트는 다음 자식 테스트로 구성됩니다.

  • 인터리브 테스트

  • 독립 리소스의 유효성 검사 테스트

  • OPC 유효성 검사 테스트

  • XPS 패키지 구조 테스트

Aa348104.collapse_all(ko-kr,VS.110).gif인터리브 테스트

도구는 파일이 인터리브되었는지 여부를 보고하고 파일이 인터리브된 경우 올바르게 인터리브되었는지 여부를 보고합니다. /NoInterleave 스위치가 사용될 경우 이 테스트는 실행되지 않습니다. 다음과 같은 두 가지 자식 테스트가 있습니다.

  1. 조각 수집 테스트 - 도구는 파일의 모든 포함된 조각을 수집합니다. 여기에는 각 글꼴 및 이미지 파일, 관계 파일 및 각 *.fpage, *.fdoc, *.fdseq 및 *.frag 파일이 포함됩니다. 아래 예제에서는 이 테스트의 로그 항목을 보여 줍니다. 테스트되는 XPS 패키지에는 단일 고정 페이지, 단일 글꼴 및 단일 이미지를 가진 단일 고정 문서가 있습니다.

    +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 파일의 편집이 허용되지 않으므로 순서가 다를 경우 이 테스트는 "경고"를 표시합니다.

Aa348104.collapse_all(ko-kr,VS.110).gif독립 리소스의 유효성 검사 테스트

독립 리소스의 유효성 검사 테스트는 전체 파일에서 글꼴 또는 이미지 콘텐츠 형식을 가리키는 XPS 부분을 검색하고 각 리소스가 올바른 콘텐츠 형식인지 확인합니다. 예를 들어 글꼴 콘텐츠 형식이 가리키는 리소스가 실제로 글꼴인지 확인합니다. /SkipResParts 스위치 또는 /OnlyPkg 스위치가 사용된 경우 이러한 테스트는 실행되지 않습니다.

Aa348104.collapse_all(ko-kr,VS.110).gifOPC 유효성 검사 테스트

OPC 유효성 검사 테스트는 XPS 파일에서 OPC 사양을 준수하는지 확인합니다.

이 테스트에는 다음과 같은 두 개의 자식 테스트가 있습니다.

  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. 패키지 관계 태그 테스트 - 도구는 XPS(XML Paper Specification) 패키지의 루트에서 <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(ko-kr,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
    

    다음 예제에서는 이 테스트에 실패할 경우의 로그 보고서를 보여 줍니다. 이 경우 패키지에 없는 페이지(<PageContent Source="../Pages/FixedPage_3.fpage" />)에 대한 참조가 <FixedDocument> 부분에 포함되어 있기 때문에 테스트에 실패합니다. 위반이 발생했을 수도 있는 규칙 목록이 로그에서 제공됩니다. XPS: Specification and License Downloads에서 다운로드할 수 있는 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
    

    다음 예제에서는 이 테스트에 실패할 경우의 로그 보고서를 보여 줍니다. 이 경우 XPS 스키마에 선언되지 않은 특성이 <FixedPage> 부분에 포함되어 있기 때문에 테스트에 실패합니다. 로그는 위반된 규칙을 식별하고 오류 태그가 시작되는 정확한 문자 위치를 지정합니다.

    +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. 사용자 지정 태그 테스트 - 이 테스트는 M2.74, M3.7 - M3.14 및 M4.3과 같은 XSD 파일 자체에서 적용하지 않는 규칙에 대한 준수를 테스트합니다. XPS: Specification and License Downloads에서 다운로드할 수 있는 XPS 사양에서 이러한 규칙을 찾을 수 있습니다.

  5. 페이지 관계 테스트 - 이 테스트는 <FixedPage> 태그(XPS 패키지의 page_name.fpage 구성 요소)에서 리소스 부분인 글꼴, 이미지, 원격 리소스 사전 또는 ICC(International Color Consortium) 프로필에 대한 모든 참조를 검사하고 해당 리소스인 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> 부분을 테스트합니다. 관계는 글꼴, 이미지, 원격 리소스 사전 및 ICC(International Color Consortium) 프로필에 대한 것일 수 있습니다.

    2. 모든 관계에 대해 단계를 반복합니다.

  6. 문서의 모든 페이지에 대해 3 - 5단계를 반복합니다.

  7. 시퀀스의 모든 문서에 대해 2 - 6단계를 반복합니다.

  8. 참조되지 않은 부분을 테스트합니다.

다음 예제에서는 하나의 2페이지 문서, 각 페이지에 하나의 글꼴, 두 번째 페이지에 이미지가 있는 패키지에 대한 완전한 XPS 패키지 구조 테스트 결과를 보여 줍니다. 두 번째 문서의 두 번째 페이지에서 <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(ko-kr,VS.110).gif요구 사항

.NET Framework 3.0

참고 항목

기타 리소스

XPS Specification and License Downloads

XPS and Windows Vista

XPS Documents: A First Look at APIs For Creating XML Paper Specification Documents

Programming XPS Documents Lab and Extending the XPS Document Viewing Experience Lab