Constraint Specification Languages: Comparing XCSL, Schematron and XML-Schemas

Marta Henriques Jacinto, Giovani Rubert Librelotto, José Carlos Leite Ramalho, Pedro Rangel Henriques


After being able to mark-up text and validate its structure according to a grammar, we may start thinking it would be natural to be able to validate some non-structural issues in XML documents like relationships between elements belonging to different contexts, invariants over data models, constraints over attribute values and relationships between attributes. XML Schemas are a big step in that direction. However, they only allow users to specify primitive constraints like data typing and data format. Currently, we can find two approaches that represent a complement to DTDs or XML Schemas — XCSL and Schematron — and allow us to specify constraints and to validate the instances of a family of documents against that set of rules. Both are implemented on top of XSL. Both use a kind of an XML envelope to hide XSL specification. XSLT pattern language is the core language of both systems. With all these resemblances it is easy to conclude that they are quite similar. However they differ in some fundamental concepts. These two constraint specification languages together with XML Schemas were hardly tested and benchmarked with an huge test suite. The most significant results will be discussed in this paper. We will try to answer questions like: Do they do the same job? Are there some kind of constraints that are easier to specify with one of them? Do you need different background to use the tools? Is it possible to use them in similar situations (the same DTD, the same XML instances)? May we use them to produce an equal result? How do XCSL and Schematron relate to XML Schemas? What is the intersection area of these three? What kind of constraints each one of these three is able to specify? What kind of constraints each one of these three can not specify? In this article, we will use that test suite and show, step-by-step, the way we handled several kinds of constraints in many different instances.


Bibliography Navigation: Reference List; Author Index; Title Index; Keyword Index

Generated by sharef2html on 2011-04-15, 02:00:41.