I've indicated that the <note> element can either appear or not appear in elements of the transactionType . This is because I've set the minOccurs attribute like this, which indicates that the minimum number of times this element can occur is zero: <xsd:complexType name="transactionType"> <xsd:sequence> <xsd:element name="Lender" type="address"/> <xsd:element name="Borrower" type="address"/> <xsd:element ref="note" minOccurs="0"/> <xsd:element name="books" type="books"/> <xsd:sequence> <xsd:attribute name="borrowDate" type="xsd:date"/> /xsd:complexType> In general, you can specify the minimum number of times an element appears with the minOccurs attribute and the maximum number of times it can appear with the maxOccurs attribute. For example, here's how I would say that the <note> element can appear from zero to five times in the transactionType type: <xsd:complexType name="transactionType"> <xsd:sequence> <xsd:element name="Lender" type="address"/> <xsd:element name="Borrower" type="address"/> <xsd:element ref="note" minOccurs="0" maxOccurs="5"/> <xsd:element name="books" type="books"/> <xsd:sequence> <xsd:attribute name="borrowDate" type="xsd:date"/> </xsd:complexType>
|