RELAX NG Schema for Source Writing
Author: Hugh Field-Richards
Date: 2007-03-24T17:00
The Source WRiting XML definition (based on the Cocoon with some minor differences).
These are the namespaces needed by the Schematron validator.
<define name="source.write"> <element name="source:write"> <optional> <attribute name="create"> <data type="boolean"/> </attribute> </optional> <optional> <attribute name="overwrite"> <data type="boolean"/> </attribute> </optional> <interleave> <ref name="source.source"/> <optional> <ref name="source.path"/> </optional> <ref name="source.fragment"/> </interleave> </element> </define>
<define name="source.insert"> <element name="source:insert"> <optional> <attribute name="create"> <data type="boolean"/> </attribute> </optional> <optional> <attribute name="overwrite"> <data type="boolean"/> </attribute> </optional> <interleave> <ref name="source.source"/> <optional> <ref name="source.path"/> </optional> <optional> <ref name="source.replace"/> </optional> <ref name="source.fragment"/> </interleave> </element> </define>
<define name="source.delete"> <element name="source:delete"> <ref name="source.source"/> </element> </define>
<define name="source.source"> <element name="source:source"> <text/> </element> </define>
<define name="source.path"> <element name="source:path"> <text/> </element> </define>
<define name="source.replace"> <element name="source:replace"> <text/> </element> </define>
<define name="source.fragment"> <element name="source:fragment"> <ref name="source.fragmentElements"/> </element> </define>
<define name="source.fragmentElements"> <zeroOrMore> <choice> <element> <anyName/> <ref name="source.fragmentElements"/> </element> <attribute> <anyName/> </attribute> </choice> </zeroOrMore> </define>