XML Schema Choice and attribute

vbPeru

New Member
everyone I have a little problem I would like an attribute to act as a member_id. This is becuase if I have it as just another tag I can't get it total unique I can only get it unique for all full_member type and basic_member type. so I thought I could solve this with an attribute and a key. But my problem is that I can't have a attribute and a choice next to each other or I just don't know how to do it right.Below is my schema so far.\[code\]<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:complexType name="memberinfo"> <xs:sequence> <xs:element ref="member_id"/> <xs:element ref="first_name"/> <xs:element ref="last_name"/> <xs:element ref="address"/> <xs:element ref="contact_numbers"/> <xs:element ref="date_joined"/> </xs:sequence> </xs:complexType> <xs:element name="member_id" type="xs:integer"/> <xs:element name="first_name" type="xs:NCName"/> <xs:element name="last_name" type="xs:NCName"/> <xs:element name="address"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element ref="house_number"/> <xs:element ref="house_name"/> </xs:choice> <xs:element ref="street"/> <xs:element ref="town"/> <xs:element ref="city"/> <xs:element ref="county"/> <xs:element ref="postcode"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="house_number" type="xs:integer"/> <xs:element name="house_name" type="xs:string"/> <xs:element name="street" type="xs:string"/> <xs:element name="town" type="xs:NCName"/> <xs:element name="city" type="xs:NCName"/> <xs:element name="county" type="xs:NCName"/> <xs:element name="postcode" type="xs:NCName"/> <xs:element name="contact_numbers"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="3" ref="contact_number"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="contact_number" type="xs:integer"/> <xs:element name="date_joined" type="xs:date"/> <xs:complexType name="basic_member"> <xs:complexContent> <xs:extension base="memberinfo"> <xs:sequence> <xs:element name="activities"> <xs:complexType> <xs:sequence> <xs:element name="activity_name" maxOccurs="3"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="full_member"> <xs:complexContent> <xs:extension base="memberinfo"> <xs:sequence> <xs:element name="activities"> <xs:complexType> <xs:sequence> <xs:element name="activity_name" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="members" > <xs:complexType> <xs:sequence> <xs:element name="member" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="member_id"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:key name="PK_member"> <xs:selector xpath=".//member" /> <xs:field xpath="member_id" /> </xs:key> </xs:element></xs:schema>\[/code\]Example of entry\[code\]<member> <full_member> <member_id>1</member_id> <first_name>Simon</first_name> <last_name>Hughes</last_name> <address> <house_number>12</house_number> <street>Ashgrove Road</street> <town>Forest Town</town> <city>Mansfield</city> <county>Nottinghamshire</county> <postcode>NG385DX</postcode> </address> <contact_numbers> <contact_number>01623948594</contact_number> <contact_number>01623349596</contact_number> <contact_number>01623486599</contact_number> </contact_numbers> <date_joined>2012-05-21</date_joined> <activities> <activity_name>Treadmill</activity_name> <activity_name>Squash</activity_name> <activity_name>Table Tennis</activity_name> <activity_name>Weights</activity_name> </activities> </full_member> </member> <member> <full_member> <member_id>2</member_id> <first_name>Scott</first_name> <last_name>Calladine</last_name> <address> <house_name>Don House</house_name> <street>Simons Road</street> <town>Broadton</town> <city>Supper</city> <county>Nottinghamshire</county> <postcode>N496DX</postcode> </address> <contact_numbers> <contact_number>01623395865</contact_number> <contact_number>01623496959</contact_number> <contact_number>01623005604</contact_number> </contact_numbers> <date_joined>2007-08-16</date_joined> <activities> <activity_name>Static Cycle</activity_name> <activity_name>Badminton</activity_name> <activity_name>Table Tennis</activity_name> </activities> </full_member> </member><member> <full_member> <member_id>3</member_id> <first_name>Fransis</first_name> <last_name>Smith</last_name> <address> <house_name>Don House</house_name> <street>Lemington Close</street> <town>Bradford</town> <city>Bradfordcity> <county>West Yorkshire</county> <postcode>BD723DX</postcode> </address> <contact_numbers> <contact_number>01623497035</contact_number> <contact_number>01623389468</contact_number> <contact_number>01623439949</contact_number> </contact_numbers> <date_joined>2007-08-16</date_joined> <activities> <activity_name>Static Cycle</activity_name> <activity_name>Badminton</activity_name> <activity_name>Table Tennis</activity_name> </activities> </full_member> </member><member> <full_member> <member_id>4</member_id> <first_name>Hayley</first_name> <last_name>Cummingham</last_name> <address> <house_number>87</house_number> <street>Boreast Road</street> <town>Braranger</town> <city>Mansfield</city> <county>Nottinghamshire</county> <postcode>N454HX</postcode> </address> <contact_numbers> <contact_number>01623306031</contact_number> <contact_number>01623206940</contact_number> <contact_number>01623059680</contact_number> </contact_numbers> <date_joined>2012-05-21</date_joined> <activities> <activity_name>Treadmill</activity_name> <activity_name>Squash</activity_name> <activity_name>Table Tennis</activity_name> <activity_name>Weights</activity_name> </activities> </full_member> </member>\[/code\]but with my current schema the id's would go 1 ,1 ,2 ,2 THANK YOU
 
Back
Top