Chi scrive scjemi XML si sarà posto il problema, probabilmente, di riusare i tipi creati in schemi esterni. Immaginiamo, a titolo di esempio, di aver creato uno schema XML come il seguente:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:peway:person" xmlns="urn:peway:person" xmlns:xs="
http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:element name="Person" type="PersonType"/>
 <xs:complexType name="PersonType">
  <xs:sequence>
   <xs:element name="FirstName" type="xs:string"/>
   <xs:element name="LastName" type="xs:string"/>
  </xs:sequence>
 </xs:complexType>
</xs:schema>

Vogliamo usare il tipo PersonType senza riscriverlo (copy&paste) nel nuovo schema. Basterà importarlo:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:peway:profile" xmlns="urn:peway:profile" xmlns:xs="
http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:person="urn:peway:person">
 <xs:import namespace="urn:peway:person" schemaLocation="Person.xsd"/>
 <xs:element name="Profile">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="Person" type="person:PersonType"/>
    <xs:element name="Person" type="person:PersonType"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

Ovviamente, se dobbiamo leggere lo schema molte volte (in un processo di valiazione), potrebbe comunque essere utile avere il tipo incluso nel nuovo schema, oppure affidarci a meccanismi di caching.