-------- Original Message --------
Subject: Re: [xml-dev] Content Assembly Mechanism (CAM)
From: Philippe Poulard <philippe.poulard@sophia.inria.fr>
Date: Thu, October 08, 2009 9:34 am
To: rjelliffe@allette.com.au
Cc: Olivier Rossel <olivier.rossel@gmail.com>, Lech Rzedzicki
<xchaotic@gmail.com>, xml-dev@lists.xml.org, Cecil New
<cecil.new@gmail.com>
rjelliffe@allette.com.au a écrit :
>> could you elaborate on that relax NG + schematron?
>> i can understand that chaining relax validation and schematron
>> processing is definitely possible.
>>
>> but as far as i understand, they are no integration effort between them.
IMHO, Schematron is not intended to be integrated; even if you embed it
in RelaxNG (as mentioned below by Rick), the embedded part of Schematron
will be ignored from the host language (each will ignore the other).
For example, consider an XML editor within which the user is invited to
insert a new element under a <purchase-order>; a schema processor will
be able to propose the authorized elements, say <item> and <free-item>,
as indicated by a RelaxNG schema; unfortunately, some additional
constraints are not expressible with RelaxNG, say "a <free-item> element
is allowed only if the total amount of the order is more than 500€", so
they are expressed with Schematron; then the user select <free-item>
since it is proposed by RelaxNG, but after insertion it will have a
warning from Schematron: "you are not allowed to insert this element
because..."
The Active Schema Language (ASL) figures out elegantly this kind of
issues by computing dynamically content models instead of serving them
statically. Concretely, it can compute the content model mentioned above
exactly as it is expressed: "a <purchase-order> is a sequence of
<item>s, and if the total amount of the order is more than 500€,
<free-item> is part of the sequence". So simple, so natural.
ASL:
http://ns.inria.fr/active-tags/active-schema/active-schema.html
The engine is available here:
http://reflex.gforge.inria.fr/
You can run various examples here:
http://reflex.gforge.inria.fr/tutorial-schemas.html
It was the topic of my talk at Balisage last year: "Properties of schema
mashups: dynamicity, semantic, mixins, hyperschemas"
http://www.balisage.net/Proceedings/vol1/html/Poulard01/BalisageVol1-Poulard01.html
The slides:
http://hal.inria.fr/docs/00/32/26/61/ANNEX/Bal2008poul061003.pdf
>
> Eddie Robertsson's software to embed Schematron rules in RELAX NG has been
> around since about 2001.
>
> Also both Schematron and RELAX NG are part of ISO DSDL: one
> long-time-coming part of DSDL is a pipelining execution framework, with
> XProc the candidate. The challenge I see with DSDL is not so much to
> integrate RELAX NG and Schematron (why dilute one?) as to integrate the
> other parts of DSDL with them.
>
> Cheers
> Rick Jelliffe
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address:
http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive:
http://lists.xml.org/archives/xml-dev/
> List Guidelines:
http://www.oasis-open.org/maillists/guidelines.php
>
--
Cordialement,
///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
_______________________________________________________________________
XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.
[Un]Subscribe/change address:
http://www.oasis-open.org/mlmanage/
Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
subscribe: xml-dev-subscribe@lists.xml.org
List archive:
http://lists.xml.org/archives/xml-dev/
List Guidelines:
http://www.oasis-open.org/maillists/guidelines.php