wrote:
> I am a newbie to XML. I have the following question: how do I express
> something in XML when the subsequent tag structures depends on the
> value of a preceeding tag?
Neither DTDs nor XML Schema allow you to use the value of an element or
attribute to constrain the presence or another -- with the exception of
the xsi:type attribute; see a good XML Schema tutorial (or a great deal
of recent discussion in this very newsgroup) for details of how to use
that sub-typing feature.
You *can* structure things so the presence or absence of your <TAG2>
element gates whether TAG3 or TAG4 was expected after it, by writing the
appropriate content models in your DTD or Schema.
Or you can enforce the cross-constraint in your application rather than
expecting the document formalism to do it all. Remember, neither DTDs
nor schemas are intended to capture all the semantics of a document, and
some checking will always have to be done by the application --
vaidation only provides an initial layer and some "machine-readable
documentation" of what's expected.
--
Joe Kesselman / Beware the fury of a patient man. -- John Dryden