p:directory-list 040 (AB)

Tests p:directory-list: override-content-types

Test ab-directory-list-040.xml is expected to pass.

It requires the following features: p:directory-list.

The pipeline


<p:declare-step xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
   <p:output port="result">
   <p:directory-list path="../testfolder" detailed="true" max-depth="unbounded" override-content-types="[['\.txt$','application/octet-stream']]">
</p:declare-step>

Schematron validation


<s:schema xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">
   <s:ns uri="http://www.w3.org/ns/xproc-step" prefix="c">
   <s:pattern>
      <s:rule context="/">
         <s:assert test="c:directory">Root element is not c:directory.</s:assert>
         <s:assert test="c:directory/@name='testfolder'">Root does not have attribute 'name' with 'testfolder'.</s:assert>
         <s:assert test="count(c:directory//c:file)=2">Only two file elements should be present.</s:assert>
         <s:assert test="c:directory/c:file/@name='file1.txt'">There is no file element with @name = 'file1.txt'.</s:assert>
         <s:assert test="//c:file[@name='file1.txt']/@content-type='application/octet-stream'">Content-type of 'file1.txt' is not 'application/octet-stream'.</s:assert>
         <s:assert test="//c:file[@name='file2.txt']/@content-type='application/octet-stream'">Content-type of 'file2.txt' is not 'application/octet-stream'.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

26 Jul 2022, Achim Berndzen

First shot