XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Are there invariants in XML processing?

For a Schematron introduction to this, including document invariants (fixed and co-occurrence) and input/output invariants, and round-trip invariants, see Six Kinds of Validation using Schematron at https://www.schematron.com/document/279.html

For people interest in the practical theory of invariants, Bertam Meyers' work on Design by Contact still is a great place to start: he couches it in functional terms of pre-condition, invariant,  post-condition, which I think is more systematic than just "invariants".

For the example, the Schematron IO validation (output to input) might be (roughly)

<sch:pattern id="publicMilitaryIndicator-nullTransform" documents="'input.xml'">

     <sch:rule context="publicMilitaryIndicator">
             <sch:let name="matching-output" value="myFunc:findMatchingRow(., 'output.xml')" />
          
              <sch:assert test="TYPE = 'A' or TYPE = 'B' or TYPE = 'C'" role="pre-condition" >Every publicMilitaryIndicator input should have a TYPE  with value A, b, or C (i.e., Civil, Joint, Military)</sch:assert>

               <sch:assert test="$matching-output/TYPE = 'A' or $matching-output/TYPE = 'B' or $matching-output/TYPE = 'C'" role="post-condition" >Every publicMilitaryIndicator output should have a TYPE  with value A, b, or C (i.e., Civil, Joint, Military)</sch:assert>

             <sch:assert test="$matching-output" role="invariant">Every input publicMilitaryIndicator should have a matching output</sch:assert>

             <sch:assert test="$matching-output/TYPE= ./TYPE" role="invariant" >Every input publicMilitaryIndicator TYPE value should be carried through to the output</sch:assert>

</sch:rule></sch:pattern>

Rick


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS