XML Tutorial/XML Schema/Anonymous Custom Types
Elements with Anonymous Complex Types
<source lang="xml">
If you don"t need to reuse a complex type, it may be faster to create an anonymous complex type within the element declaration.
File: Schema..xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru" elementFormDefault="qualified"> <xsd:element name="characteristics"> <xsd:complexType> <xsd:sequence> <xsd:element name="weight" type="xsd:string" /> <xsd:element name="length" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="kind" type="xsd:string" /> </xsd:complexType> </xsd:element>
</xsd:schema>
File: Data.xml <?xml version="1.0"?> <characteristics xmlns="http://www.wbex.ru" kind="physical">
<weight>3 points</weight> <length>3 years</length>
</characteristics></source>
You don"t have to name every custom type
<source lang="xml">
If you"re just going to use a type once, you can omit the cross reference between the element and the type. The only difference between an anonymous type and a named type is that a named type can be used more than once. whereas the anonymous type can only be used for the element in which it is contained. <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru" elementFormDefault="qualified"> <xsd:element name="zipcode"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{5}(-\d{4})?" /> </xsd:restriction> </xsd:simpleType> </xsd:element>
</xsd:schema></source>