[Home] [By Thread] [By Date] [Recent Entries]


Max Chappell scripsit:

> I agree. The biggest shortcoming I have trouble with is the lack of any 
> if then construct. i.e.
> 
> Taking the example you gave -
> You can't say if <ParentNode> has @flavour='B' Then only allow child 
> elements of type <B>.
> 
> Tall order I know, but something I come up against on a daily basis.

Consider using RELAX NG, then, in which such things are easily accomplished
using fixed-value attributes and a choice.

If we wish to allow ParentNode to contain A children only if @flavour="A"
and likewise for B, then we write:

element ParentNode {
	(attribute flavour {"A"}, A*) |
	(attribute flavour {"B"}, B*)
	}

A = element A {...}

B = element B {...}

As before, the ellipses should be replaced by the attributes and content
model of the A and B elements.

-- 
Do what you will,                       John Cowan
   this Life's a Fiction                jcowan@r...
And is made up of                       http://www.reutershealth.com
   Contradiction.  --William Blake      http://www.ccil.org/~cowan

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member