Creating Element Groups

Say that I wanted to let the borrower borrow not just books, but also a magazine. To do that, I can create a new group named booksAndMagazine . A group collects elements together, and you can name groups. You can then include a group in other elements using the <xsd:group> element and referring to the group by name:

 <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:choice>             <xsd:element name="books" type="books"/>             <xsd:element ref="book"/>  <xsd:group ref="booksAndMagazine"/>  <xsd:choice>     </xsd:sequence>     <xsd:attribute name="borrowDate" type="xsd:date"/> </xsd:complexType> 

To create the group named booksAndMagazine , I use the <xsd:group> element; to ensure that the elements inside that group appear in a specific sequence, I use the <xsd:sequence> element this way:

 <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:choice>             <xsd:element name="books" type="books"/>             <xsd:element ref="book"/>             <xsd:group ref="booksAndMagazine"/>         <xsd:choice>     </xsd:sequence>     <xsd:attribute name="borrowDate" type="xsd:date"/> </xsd:complexType>  <xsd:group name="booksAndMagazine">   <xsd:sequence>   <xsd:element ref="books"/>   <xsd:element ref="magazine"/>   </xsd:sequence>   </xsd:group>  


Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net