Robert Gould
Robert Gould

Reputation: 69815

Can I have one XML Schema (XSD) include another XML-Schema?

I currently have two XSD schemes and one is a "light" version of the other. Right now I have everything in the "light" version repeated in the "complete" schema, but this becomes a pain when I need to make a change, and it goes against the DRY principle anyways, so I was wondering if there was an element that served to include another schema into a schema, so I can have my "complete" inherit from the "light" schema to reduce maintenance hurdles.

Upvotes: 41

Views: 44303

Answers (2)

David Norman
David Norman

Reputation: 19879

Use the <include> element, see for example here.

Upvotes: 5

jdmichal
jdmichal

Reputation: 11142

There are two methods for this.

<xsd:include schemaLocation="pathToFile" /> should be used for including files of the same namespace.

<xsd:import namespace="namespace" schemaLocation="pathToFile" /> should be used for include files in a different namespace. Usually you will specify the namespace given as the targetNamespace of the imported schema.

Upvotes: 61

Related Questions