D
Schemas
About the Schemas
The XFA schemas are written in the language RELAX: Next Generation (RNG) which is described in
[RELAX-NG].
XFA schemas are written in this language rather than the more usual XML-Schema 1.0
[XMLSchema]
free ordering allows differently-named children of an element to appear in any order without changing
the meaning. In RNG this is signified by the
interleave
directive. For example, in RNG one can say:
<element name="a">
<interleave>
<element name="x"/>
<element name="y"/>
<element name="z"/>
</interleave>
</ref>
This declares that the element
a
has three child elements
x
,
y
, and
z
which may appear in any order. There
are six possible permutations for the child elements: xyz, xzy, yxz, yzx, zxy, and zyx . This could be declared
in XML-Schema but it would have to be declared as six alternative sequences of child elements.
Unfortunately the number of permutations goes up as the factorial of the number of distinct child
elements and XFA has elements with dozens of distinct children. Hence it is not practical to represent XFA
in XML-Schema while preserving the free ordering.
979