Reputation: 543
Here I have my XML Schema. I'm trying to determine whether Family_Client
will allow multiple clients as the Family
table may have multiple family members.
<xsd:element name="Nzfsg_Families" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Family" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FamilyID" type="xsd:int" minOccurs="1" maxOccurs="1"/>
<xsd:element name="PostalAddress" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MailingAddress1" type="xsd:string" minOccurs="0" />
<xsd:element name="MailingAddress2" type="xsd:string" minOccurs="0" />
<xsd:element name="MailingCity" type="xsd:string" minOccurs="0" />
<xsd:element name="MailingPostCode" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ClientAddress" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="HomeAddress1" type="xsd:string" minOccurs="0" />
<xsd:element name="HomeAddress2" type="xsd:string" minOccurs="0" />
<xsd:element name="HomeCity" type="xsd:string" minOccurs="0" />
<xsd:element name="HomePostcode" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Family_Client" minOccurs="1" maxOccurs="10">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ClientID" type="xsd:int" />
<xsd:element name="Title" type="Title" minOccurs="0"/>
<xsd:element name="FirstName" type="xsd:string" />
<xsd:element name="LastName" type="xsd:string" />
<xsd:element name="MiddleName" type="xsd:string" minOccurs="0" />
<xsd:element name="PreferredName" type="xsd:string" minOccurs="0" />
<xsd:element name="Email" type="xsd:string" minOccurs="0" />
<xsd:element name="Gender" type="Gender" minOccurs="0" />
<xsd:element name="Dob" type="xsd:date" minOccurs="0" />
<xsd:element name="HomePhone" type="xsd:string" minOccurs="0" />
<xsd:element name="MobilePhone" type="xsd:string" minOccurs="0" />
<xsd:element name="BusinessPhone" type="xsd:string" minOccurs="0" />
<xsd:element name="WorkEmail" type="xsd:string" minOccurs="0" />
<xsd:element name="Fax" type="xsd:string" minOccurs="0" />
<xsd:element name="Smoker" type="YesOrNo" minOccurs="0" />
<xsd:element name="BestTimeToCall" type="xsd:string" minOccurs="0" />
<xsd:element name="Occupation" type="xsd:string" minOccurs="0" />
<xsd:element name="Employer" type="xsd:string" minOccurs="0" />
<xsd:element name="Industry" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="YesOrNo">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Yes"/>
<xsd:enumeration value="No"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Gender">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Male"/>
<xsd:enumeration value="Female"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Title">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Mr"/>
<xsd:enumeration value="Mrs"/>
<xsd:enumeration value="Ms"/>
<xsd:enumeration value="Miss"/>
<xsd:enumeration value="Dr"/>
</xsd:restriction>
</xsd:simpleType>
Will this schema support multiple Family_Client
child elements or is there something else I need to do?
Upvotes: 2
Views: 771
Reputation: 7519
Your schema does accommodate multiple Family and Family_Client elements. For example, here is an XML file that validates against your XSD:
<?xml version="1.0" encoding="UTF-8"?>
<Nzfsg_Families xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:/C:/temp/Untitled1.xsd">
<Family>
<FamilyID>2147483647</FamilyID>
<PostalAddress>
<MailingAddress1>MailingAddress10</MailingAddress1>
<MailingAddress2>MailingAddress20</MailingAddress2>
<MailingCity>MailingCity0</MailingCity>
<MailingPostCode>MailingPostCode0</MailingPostCode>
</PostalAddress>
<ClientAddress>
<HomeAddress1>HomeAddress10</HomeAddress1>
<HomeAddress2>HomeAddress20</HomeAddress2>
<HomeCity>HomeCity0</HomeCity>
<HomePostcode>HomePostcode0</HomePostcode>
</ClientAddress>
<Family_Client>
<ClientID>2147483647</ClientID>
<Title>Mr</Title>
<FirstName>FirstName0</FirstName>
<LastName>LastName0</LastName>
<MiddleName>MiddleName0</MiddleName>
<PreferredName>PreferredName0</PreferredName>
<Email>Email0</Email>
<Gender>Male</Gender>
<Dob>2006-05-04</Dob>
<HomePhone>HomePhone0</HomePhone>
<MobilePhone>MobilePhone0</MobilePhone>
<BusinessPhone>BusinessPhone0</BusinessPhone>
<WorkEmail>WorkEmail0</WorkEmail>
<Fax>Fax0</Fax>
<Smoker>Yes</Smoker>
<BestTimeToCall>BestTimeToCall0</BestTimeToCall>
<Occupation>Occupation0</Occupation>
<Employer>Employer0</Employer>
<Industry>Industry0</Industry>
</Family_Client>
<Family_Client>
<ClientID>2147483647</ClientID>
<Title>Mr</Title>
<FirstName>FirstName1</FirstName>
<LastName>LastName1</LastName>
<MiddleName>MiddleName1</MiddleName>
<PreferredName>PreferredName1</PreferredName>
<Email>Email1</Email>
<Gender>Male</Gender>
<Dob>2006-05-04</Dob>
<HomePhone>HomePhone1</HomePhone>
<MobilePhone>MobilePhone1</MobilePhone>
<BusinessPhone>BusinessPhone1</BusinessPhone>
<WorkEmail>WorkEmail1</WorkEmail>
<Fax>Fax1</Fax>
<Smoker>Yes</Smoker>
<BestTimeToCall>BestTimeToCall1</BestTimeToCall>
<Occupation>Occupation1</Occupation>
<Employer>Employer1</Employer>
<Industry>Industry1</Industry>
</Family_Client>
</Family>
<Family>
<FamilyID>2147483647</FamilyID>
<PostalAddress>
<MailingAddress1>MailingAddress12</MailingAddress1>
<MailingAddress2>MailingAddress22</MailingAddress2>
<MailingCity>MailingCity2</MailingCity>
<MailingPostCode>MailingPostCode2</MailingPostCode>
</PostalAddress>
<ClientAddress>
<HomeAddress1>HomeAddress12</HomeAddress1>
<HomeAddress2>HomeAddress22</HomeAddress2>
<HomeCity>HomeCity2</HomeCity>
<HomePostcode>HomePostcode2</HomePostcode>
</ClientAddress>
<Family_Client>
<ClientID>2147483647</ClientID>
<Title>Mr</Title>
<FirstName>FirstName6</FirstName>
<LastName>LastName6</LastName>
<MiddleName>MiddleName6</MiddleName>
<PreferredName>PreferredName6</PreferredName>
<Email>Email6</Email>
<Gender>Male</Gender>
<Dob>2006-05-04</Dob>
<HomePhone>HomePhone6</HomePhone>
<MobilePhone>MobilePhone6</MobilePhone>
<BusinessPhone>BusinessPhone6</BusinessPhone>
<WorkEmail>WorkEmail6</WorkEmail>
<Fax>Fax6</Fax>
<Smoker>Yes</Smoker>
<BestTimeToCall>BestTimeToCall6</BestTimeToCall>
<Occupation>Occupation6</Occupation>
<Employer>Employer6</Employer>
<Industry>Industry6</Industry>
</Family_Client>
</Family>
</Nzfsg_Families>
Upvotes: 2
Reputation: 3440
In a sequence, any element with a maxOccurs > 1 can be repeated. Based on your code 1 to 10 <Family_Client />
elements will be allowed. You can also change the attribute to maxOccurs="unbounded" if you want to allow an unlimited number of family clients.
Upvotes: 3