XML/XML Schema/simpleContent
Based on user-defined simple type
<source lang="xml">
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru" elementFormDefault="qualified"> <xs:simpleType name="string255"> <xs:restriction base="xs:token"> <xs:maxLength value="255" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="supportedLanguages"> <xs:restriction base="xs:language"> <xs:enumeration value="en" /> <xs:enumeration value="es" /> </xs:restriction> </xs:simpleType> <xs:attribute name="lang" type="supportedLanguages" /> <xs:element name="title"> <xs:complexType> <xs:simpleContent> <xs:extension base="string255"> <xs:attribute ref="lang" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>
</xs:schema>
</source>
complexType based on simpleContent
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <addr:address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.wbex.ru Schema.xsd" xmlns:addr="http://www.wbex.ru" addr:language="en"> <fullName> <first>William</first> <middle>Scott</middle> <last>Means</last> </fullName> <contacts> <phone addr:location="home" addr:number="111.222.3333"/> </contacts>
</addr:address> File: Schema.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.wbex.ru" xmlns:addr="http://www.wbex.ru" attributeFormDefault="qualified"> <xsd:element name="address"> <xsd:complexType> <xsd:sequence> <xsd:element name="fullName"> <xsd:complexType> <xsd:sequence> <xsd:element name="first" type="addr:nameComponent"/> <xsd:element name="middle" type="addr:nameComponent" minOccurs="0"/> <xsd:element name="last" type="addr:nameComponent"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="contacts" type="addr:contactsType" minOccurs="0"/> </xsd:sequence> <xsd:attributeGroup ref="addr:nationality"/> </xsd:complexType> </xsd:element> <xsd:complexType name="nameComponent"> <xsd:simpleContent> <xsd:extension base="xsd:string"/> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="contactsType"> <xsd:sequence> <xsd:element name="phone" minOccurs="0"> <xsd:complexType> <xsd:complexContent> <xsd:restriction base="xsd:anyType"> <xsd:attribute name="location" type="addr:locationType"/> <xsd:attribute name="number" type="xsd:string"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="locationType"> <xsd:restriction base="xsd:string"/> </xsd:simpleType> <xsd:attributeGroup name="nationality"> <xsd:attribute name="language" type="xsd:language"/> </xsd:attributeGroup>
</xsd:schema>
</source>
simpleContent with extension
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <addr:address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.wbex.ru Schema.xsd" xmlns:addr="http://www.wbex.ru" addr:language="en"> <fullName> <first>first</first> <middle>middle</middle> <last>last</last> </fullName>
</addr:address> File: Schema.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.wbex.ru" xmlns:addr="http://www.wbex.ru" attributeFormDefault="qualified"> <xsd:element name="address"> <xsd:complexType> <xsd:sequence> <xsd:element name="fullName"> <xsd:complexType> <xsd:sequence> <xsd:element name="first" type="addr:nameComponent"/> <xsd:element name="middle" type="addr:nameComponent" minOccurs="0"/> <xsd:element name="last" type="addr:nameComponent"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attributeGroup ref="addr:nationality"/> </xsd:complexType> </xsd:element> <xsd:complexType name="nameComponent"> <xsd:simpleContent> <xsd:extension base="xsd:string"/> </xsd:simpleContent> </xsd:complexType> <xsd:attributeGroup name="nationality"> <xsd:attribute name="language" type="xsd:language"/> </xsd:attributeGroup>
</xsd:schema>
</source>