<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:this="www.example.org/self/recursion"
 targetNamespace="www.example.org/self/recursion">

<xsd:complexType name="X">
	<xsd:sequence>
		<xsd:element name="x" type="xsd:string"/>
		<xsd:element name="y" minOccurs="0">
			<xsd:complexType>
				<xsd:complexContent>
					<xsd:extension base="this:X">
						<xsd:sequence>
							<xsd:element name="z" type="xsd:string"/>
						</xsd:sequence>
						<xsd:attribute name="attr1" type="xsd:string" />
					</xsd:extension>
				</xsd:complexContent>
			</xsd:complexType>
		</xsd:element>
	</xsd:sequence>
	<xsd:attribute name="attr2" type="xsd:string" />
</xsd:complexType>

</xsd:schema>
