element based on simple type : simpleContent « XML Schema « XML Tutorial






File: Data.xml
<?xml version="1.0"?>
<INVENTORY>
   <BOOK InStock="true">
      <TITLE>title 1</TITLE>
      <AUTHOR Born="1835">
         <FIRSTNAME>Mark</FIRSTNAME>
         <LASTNAME>Twain</LASTNAME>
      </AUTHOR>
      <BINDING>hardcover</BINDING>
      <PAGES FrontMatter="8">298</PAGES>
      <PRICE>5.49</PRICE>
      <DATE>2000-03</DATE>
      <ISBN>9-9999-9999-9</ISBN>
   </BOOK>
</INVENTORY>



File: Schema.xsd

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <xsd:element name="INVENTORY">
      <xsd:complexType>
         <xsd:sequence>
            <xsd:element name="BOOK" type="BookType" 
               minOccurs="0" maxOccurs="unbounded"/>
         </xsd:sequence>
      </xsd:complexType>
   </xsd:element>

   <xsd:complexType name="BookType">
      <xsd:sequence>

         <xsd:element name="TITLE">
            <xsd:complexType mixed="true">
               <xsd:sequence>
                  <xsd:element name="SUBTITLE" type="xsd:string"
                     minOccurs="0" maxOccurs="1"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>

         <xsd:element name="AUTHOR">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="FIRSTNAME" type="xsd:string"/>
                  <xsd:element name="LASTNAME" type="xsd:string"/> 
               </xsd:sequence>
               <xsd:attribute name="Born" type="xsd:gYear"/>
            </xsd:complexType>
         </xsd:element>

         <xsd:element name="BINDING">
            <xsd:simpleType>
               <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="hardcover"/>
                  <xsd:enumeration value="mass market paperback"/>
                  <xsd:enumeration value="trade paperback"/>
               </xsd:restriction>
            </xsd:simpleType>
         </xsd:element>

         <xsd:element name="PAGES">
            <xsd:complexType>
               <xsd:simpleContent>
                  <xsd:extension base="xsd:positiveInteger">
                     <xsd:attribute name="FrontMatter" 
                        type="xsd:positiveInteger"/>
                  </xsd:extension>
               </xsd:simpleContent>
            </xsd:complexType>
         </xsd:element>

         <xsd:element name="PRICE">  
            <xsd:simpleType>
               <xsd:restriction base="xsd:decimal">
                  <xsd:minExclusive value="0"/>
                  <xsd:maxExclusive value="100"/>
               </xsd:restriction>
            </xsd:simpleType>
         </xsd:element>

         <xsd:element name="DATE" type="xsd:gYearMonth" minOccurs="0"/>

         <xsd:element name="ISBN">
            <xsd:simpleType>
               <xsd:restriction base="xsd:string">
                  <xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/>
               </xsd:restriction>
            </xsd:simpleType>
         </xsd:element>

      </xsd:sequence>

      <xsd:attribute name="InStock" type="xsd:boolean" use="required" />   

   </xsd:complexType>

</xsd:schema>








3.54.simpleContent
3.54.1.The simpleContent element is used if the complex type may only have text content
3.54.2.Defining Elements to Contain Only Text
3.54.3.Creating Elements with Simple Content and Attributes
3.54.4.element based on simple type
3.54.5.As simple content models