Schematron schema for plists

Includes all the constraints previously listed as XPaths:

<?xml version="1.0"?>
<schema xmlns="http://www.ascc.net/xml/schematron">
  <title>A Schematron Schema for the Thunderbird PLists</title>

  <pattern>
    <rule context="plist">
      <assert test=
        "//key[. = 'CFBundleExecutable']">
        There is a CFBundleExecutable.
      </assert>
      <assert test=
        "count(//key[. = 'CFBundleIconFile']) = 1">
        There is exactly one CFBundleIconFile
      </assert>
      <assert test=
        "contains(//key[. = 'CFBundleGetInfoString']/following-sibling::string, 
         '© 2005 The Mozilla Organization')">
       The software is copyrighted by Mozilla.
      </assert>
      <assert test="string-length(//key[. = 
        'CFBundleSignature']/following-sibling::string) = 4">
        The CFBundleSignature is four letters
      </assert>
      <assert test="string-length(//key[. = 
        'CFBundleSignature']/following-sibling::string) = 4">
        The CFBundleSignature is four letters
      </assert>
    </rule>
  </pattern>

  <!-- some tests are simpler here -->
  <pattern>
    <rule context="key">
      <assert test=
        "name(following-sibling::*[1]) != 'key'">
        No two key elements are adjacent.
      </assert>
    </rule>
  </pattern>

</schema>
  

Previous | Next | Top | Cafe con Leche

Copyright 2005, 2006 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified August 17, 2005