The Big Picture

<<< Here's the entire schema:

<?xml version="1.0"?>
<schema xlmns="http://www.w3.org/1999/XMLSchema"
           xmlns:ewe="http://catcode.com/eweml"
           targetNamespace="http://catcode.com/eweml">
    <element name="report">
        <complexType>
            <element name="datestamp" type="date"/>
            
            <element name="station">
                <complexType>
                    <element name="latitude">
                        <simpleType base="decimal">
                            <minInclusive value="-90"/>
                            <maxInclusive value="90"/>
                        </simpleType>
                    </element>
                    <element name="longitude" type="decimal">
                        <simpleType base="decimal">
                            <minInclusive value="-90"/>
                            <maxInclusive value="90"/>
                        </simpleType>
                    </element>
                    <attribute name="fullname">
                        <simpleType base="string">
                            <maxLength value="75"/>
                        </simpleType>
                    </attribute>
                    <attribute name="abbrev">
                        <simpleType base="string">
                            <length value="4"/>
                        </simpleType>
                    </attribute>
               </complexType>
            </element>

            <element name="temperature">
                <complexType>
                    <element name="min" type="ewe:DegreeRange"/>
                    <element name="max" type="ewe:DegreeRange"/>
                    <element name="forecast-low" type="ewe:DegreeRange"/>
                    <element name="forecast-high" type="ewe:DegreeRange"/>
                </complexType>
            </element>
    
            <element name="wind" type="ewe:WindType"/>

        </complexType>
    </element>

    <complexType name="WindType">
        <element name="direction" type="ewe:DirectionType"/>
        <element name="speed" type="nonNegativeInteger"/>
    </complexType>

    <simpleType name="DirectionType" base="string">
        <enumeration value="N"/>
        <enumeration value="NNE"/>
        <enumeration value="NE"/>
        <enumeration value="ENE"/>
        <!-- and so on ... -->
    </simpleType>

    <simpleType name="DegreeRange" base="decimal">
        <minInclusive value="-70"/>
        <maxInclusive value="80"/>
    </simpleType>

</schema>

Some final thoughts >>>

  1. Validating XML with XML Schema
  2. Validity and the DTD
  3. Validity and the Schema
  4. Specifying Elements
  5. Making Validation More Specific
  6. Making New Types
  7. Enumerations
  8. The Big Picture
  9. Summary