OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Conditional xml Schema

[ Lists Home | Date Index | Thread Index ]

Thanks Erik,

Yours looks like the canonical approach, like C++ classes, or C
unions, but I'll have to get used to idea of cross-field validation.
It sounds strange to me. Just a quick glance online seemed to indicate
this was some sort of field validation, where you want to be sure that
elememt content comes from some well-defined domain.

Since I am not familiar with the procedural semantics of XML, I do not
know how someone would validate user-defined types. It looks like XML
can contain procedures written in Java, but now I'm getting confused
by the operating environments. Just where does the XML run?

Joe
http://modern-greek-verbs.tripod.com/agv/

On 6/12/06, Erik Wright <erik.wright@radialpoint.com> wrote:
> XSD supports this type of behaviour in various ways.
>
> One way is to define a base type (fruit) and extend it with other types (apple, orange). Then when defining the container element, you would define it as having children of type fruit. The instance document could incorporate either type.
>
> Another way is to use the choice element in your schema. It matches one of a specific list of types. To have several fruit (each of which might be apple or orange) you can use the minOccurs and maxOccurs attributes on the choice.
>
> -Erik
>
> > -----Original Message-----
> > From: Ramkumar Menon [mailto:ramkumar.menon@gmail.com]
> > Sent: June 11, 2006 2:10 PM
> > To: Joe Schaffner
> > Cc: Jirka Kosek; Jagdishwar B; xml-dev@lists.xml.org
> > Subject: Re: [xml-dev] Conditional xml Schema
> >
> > Cross field constraints are better off described thru rule
> > based validation languages like schematron. Use this in
> > conjunction with the XSD to enable cross field validation on fields.
> >
> > <pattern name="checkMangoOrApple">
> >   <rule context="Fruit">
> >      <assert test="@myAttr='Apple' and elementApple1>If
> > myAttr is apple, elementApple1 should be present"/>
> >      <assert test="@myAttr='Mango' and elementMango1>If
> > myAttr is mango, elementMango1 should be present"/>
> >   </rule>
> > </pattern>
> >
> >
> >
> > On 6/11/06, Joe Schaffner <schaffner.joe@gmail.com> wrote:
> > > Why don't you define a Mango element and an Apple element,
> > each with
> > > their own structure? I'll bet there is even a way to define a Fruit
> > > element, then derive an Apple and a Mango from Fruit. Then
> > you would
> > > instantiate either type of fruit, Apple or Mango, and get
> > the proper
> > > structure.
> > > Joe
> > > http://modern-greek-verbs.tripod.com/agv/
> > > PS
> > > It looks like you are trying to use the attribute to name
> > the element
> > > type, which would be unnecessary, and it would surprise me
> > if xsd --
> > > or any schema definition language -- would attribute class
> > semantics
> > > to the arrtibutes you create arbitrarily. You are trying to
> > place your
> > > metadata in the data domain.
> > >
> > > On 6/11/06, Jirka Kosek <jirka@kosek.cz> wrote:
> > > > Jagdishwar B wrote:
> > > >
> > > > > Is it possible to define the xml schema (xsd)
> > conditionally based
> > > > > on certain values.
> > > >
> > > > No. You have to use RELAX NG or Schematron to express
> > such constraints.
> > > >
> > > > --
> > > > ------------------------------------------------------------------
> > > >   Jirka Kosek     e-mail: jirka@kosek.cz     http://www.kosek.cz
> > > > ------------------------------------------------------------------
> > > >   Profesionální školení a poradenství v oblasti technologií XML.
> > > >      Podívejte se na náš nově spuštěný web http://DocBook.cz
> > > >        Podrobný přehled školení http://xmlguru.cz/skoleni/
> > > > ------------------------------------------------------------------
> > > >                    Nejbližší termíny školení:
> > > >        ** DocBook 15.-17.5.2006 ** XSL-FO 12.-13.6.2006 **
> > > >     ** XSLT 23.-26.10.2006 ** XML schémata 13.-15.11.2006 **
> > > > ------------------------------------------------------------------
> > > >   http://xmlguru.cz    Blog mostly about XML for English readers
> > > > ------------------------------------------------------------------
> > > >
> > > >
> > > >
> > > >
> > >
> >
> >
> > --
> > Shift to the left, shift to the right!
> > Pop up, push down, byte, byte, byte!
> >
> > -Ramkumar Menon
> >  A typical Macroprocessor
> >
> >
>




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS