[Slide]

Elements for Quick Example

<xsd:element name='event'>
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref='error'/>
    </xsd:sequence>
    <xsd:attribute name='id' type='xsd:unsignedInt' use='required'/>
    <xsd:attribute name='timestamp' type='xsd:datetime' use='required'/>
  </xsd:complexType>
</xsd:element>

<xsd:element name='error'>
  <xsd:complexContent>  
   <xsd:extension base="xsd:string">  
    <xsd:attribute name='type' type='errorType' use='default' value='error'/>
    <xsd:attribute name='code' type='errorCode' use='required'/>
    <xsd:attribute ref='xml:lang' use='optional'/>
   </xsd:extension>
  </xsd:complexContent>
</xsd:element>

Same type, different element

Definition of Address type

<complexType name="Address">
  <sequence>
    <element name="street" type="string"/>
    <element name="city" type="string"/>
    <element name="state" type="usps:StateCode"/>
    <element name="zip" type="usps:Zipcode"/>
  </sequence>
</complexType>

Using Address in an element

<element name="invoice">
  <complexType>
    <sequence>
        <element name="number" type="string"/>
        <element name="due" type="date"/>
        <element name="shipping" type="bz:Address"/>
        <element name="billing" type="bz:Address"/>
        <!-- etc. -->
    <sequence>
  </complexType>
</element>

What the invoice looks like

<quote xmlns='urn:example.com:namespaces:business'>
   <number>9937A</number><due>2001-05-23</due>
   <shipping>
      <street>555 West Pleasant Lane</street>
      <city>Pleasantville</city><state>IL</state><zip>38843</zip>
   </shipping>
   <billing>
      <street>100 Cliff Avenue</street>
      <city>Pismo Beach</city><state>CA</state><zip>90339</zip>
   </billing>
   <!-- etc. -->
</quote>

Copyright (c) 2001 Mary Holstege
All rights reserved.