XML Schema Complex Type - Text Elements

From http://www.w3schools.com (Copyright Refsnes Data)

# XSD Complex Text-Only Elements

A complex text-only element can contain text and attributes.

## Complex Text-Only Elements

This type contains only simple content (text and attributes), therefore we add a simpleContent element around the content. When using simple content, you must define an extension OR a restriction within the simpleContent element, like this:

    <xs:element name="somename">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="basetype">
            ....
            ....
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>

OR

    <xs:element name="somename">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="basetype">
            ....
            ....
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>

Tip: Use the extension/restriction element to expand or to limit the base simple type for the element.

Here is an example of an XML element, "shoesize", that contains text-only:

    <shoesize country="france">35</shoesize>

The following example declares a complexType, "shoesize". The content is defined as an integer value, and the "shoesize" element also contains an attribute named "country":

    <xs:element name="shoesize">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:integer">
            <xs:attribute name="country" type="xs:string" />
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>

We could also give the complexType element a name, and let the "shoesize" element have a type attribute that refers to the name of the complexType (if you use this method, several elements can refer to the same complex type):

    <xs:element name="shoesize" type="shoetype"/>

    <xs:complexType name="shoetype">
      <xs:simpleContent>
        <xs:extension base="xs:integer">
          <xs:attribute name="country" type="xs:string" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>

From http://www.w3schools.com (Copyright Refsnes Data)