xsd: Cómo extender un tipo con una lista desordenada de elementos
Esto es parte de mi esquema xml
<xs:complexType name="Friend">
<xs:all>
<xs:element name="name" type="xs:string" />
<xs:element name="phone" type="xs:string" />
<xs:element name="address" type="xs:string" />
</xs:all>
</xs:complexType>
<xs:complexType name="Coworker">
<xs:all>
<xs:element name="name" type="xs:string" />
<xs:element name="phone" type="xs:string" />
<xs:element name="office" type="xs:string" />
</xs:all>
</xs:complexType>
Para una mejor mantenibilidad, me gustaría tener los atributos compartidos en un supertipo (abstracto) o algo así. Pero más importante, quiero que todos los elementos estén desordenados y también sean opcionales.
¿Es esto posible y cuál es la mejor manera de hacerlo?