In types.xsd:
<xs:complexType name="Person"> <xs:sequence> <xs:element name="name" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="person" type="ns:Person"/>
The redefine:
<xs:redefine schemaLocation="types.xsd"> <xs:complexType name="Person"> <xs:complexContent> <xs:extension base="ns:Person"> <xs:sequence> <xs:element name="address" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine>
This is now valid:
<person xmlns="http://www.example.org/test"> <name>Alex Milowski</name> <address>San Francisco, CA</address> </person>