- From: George Cristian Bina <george@oxygenxml.com>
- Date: Wed, 29 Jun 2005 06:25:17 +0300
- To: Eddie Kawas <edward.kawas@gmail.com>
- CC: xmlschema-dev@w3.org
Hi Eddie,
You can define an unique constraint on the BasicGFFSequenceFeature
element to check that the moby:articleName of the moby:String,
moby:Float or moby:Integer are unique and couple that with defining the
exact number of occurances for these elements in the content model,
something like below:
<xs:element name="BasicGFFSequenceFeature">
<xs:complexType>
<xs:sequence>
<xs:element ref="moby:multi_key_value_pair"/>
<xs:choice maxOccurs="9" minOccurs="9">
<xs:element ref="moby:String"/>
<xs:element ref="moby:Float"/>
<xs:element ref="moby:Integer"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:unique name="test">
<xs:selector xpath="moby:String|moby:Float|moby:Integer"/>
<xs:field xpath="@moby:articleName"/>
</xs:unique>
</xs:element>
Hope that helps,
George
------------------------
George Cristian Bina
http://www.oxygenxml.com
Eddie Kawas wrote:
> Hi,
>
> I have an XML document that has elements in it that have the
> same tagname, but different mandatory values for the
> attributes. I am having one heck of a time trying to design
> a schema for these types of documents.
>
> An example of the type of xml I am trying to develop a
> schema for is below:
>
> <moby:BasicGFFSequenceFeature>
> <moby:multi_key_value_pair
> moby:articleName="column9_tag_value" moby:id=""
> moby:namespace="">
> <moby:String moby:articleName="value" moby:id=""
> moby:namespace=""/>
> <moby:String moby:articleName="key" moby:id=""
> moby:namespace=""/>
> </moby:multi_key_value_pair>
> <moby:String moby:articleName="reference" moby:id=""
> moby:namespace=""/>
> <moby:String moby:articleName="source" moby:id=""
> moby:namespace=""/>
> <moby:String moby:articleName="method" moby:id=""
> moby:namespace=""/>
> <moby:Integer moby:articleName="start" moby:id=""
> moby:namespace=""/>
> <moby:Integer moby:articleName="stop" moby:id=""
> moby:namespace=""/>
> <moby:Float moby:articleName="score" moby:id=""
> moby:namespace=""/>
> <moby:String moby:articleName="strand" moby:id=""
> moby:namespace=""/>
> <moby:String moby:articleName="frame" moby:id=""
> moby:namespace=""/>
> <moby:String moby:articleName="phase" moby:id=""
> moby:namespace=""/>
> </moby:BasicGFFSequenceFeature>
>
> As you can see, the tagname is repetitive, but the
> articleNames, which are fixed, are different. Moreover, the
> number of elements is important as well, so you would always
> see all of the elements together or not at all.
>
> Can this be done? If so, how? What am I missing?
>
> Thanks way in advance for any insight.
>
> Eddie Kawas
>
>
>
>
>
Received on Wednesday, 29 June 2005 03:25:21 UTC