<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="A" type="X"/> <!-- The purpose of this element is: a) To have a fixed attribute use b) To have an attribute with a fixed attribute declaration c) To have a complex type with simple content and a fixed value d) To have an element declaration with a fixed value --> <xsd:element name="B" fixed="howdy"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="fixedAttr" use="required" fixed="hello"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="D" type="xsd:string" fixed="hey"/> <xsd:attribute name="attr" type="xsd:string"/> <xsd:attribute name="unparsedEntityAttr" type="xsd:ENTITIES"/> <xsd:attribute name="fixedAttr" type="xsd:string" fixed="hello"/> <xsd:complexType name="X"> <xsd:sequence> <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="attr"/> <xsd:attribute ref="unparsedEntityAttr"/> </xsd:complexType> <xsd:complexType name="Y"> <xsd:complexContent> <xsd:restriction base="X"> <xsd:sequence> <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="attr" fixed="typeY"/> <xsd:attribute ref="unparsedEntityAttr" use="prohibited"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <!-- Z is the same as X, but is not derived from X. --> <xsd:complexType name="Z"> <xsd:sequence> <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="attr"/> <xsd:attribute ref="unparsedEntityAttr"/> </xsd:complexType> <xsd:complexType name="idType"> <xsd:complexContent> <xsd:extension base="X"> <xsd:attribute name="idAttr" type="xsd:ID"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="idrefType"> <xsd:complexContent> <xsd:extension base="X"> <xsd:attribute name="idrefAttr" type="xsd:IDREF"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>