2013-11-18 10 views

ответ

2

Несколько раз вы можете использовать import (другое пространство имен) и include (такое же пространство имен). redefine также может использоваться несколько раз. Это зависит от того, что вы подразумеваете под «слиянием».

См. Также http://www.herongyang.com/XML-Schema/Multiple-XSD-Schema-Document-Include-Redefine-Import.html или http://msdn.microsoft.com/en-us/library/ee254473%28v=bts.10%29.aspx.

Редактировать: redefine может использоваться несколько раз (аналогично включению).

Примеры (подтвержденные в Eclipse). Я использовал другое пространство имен (как "слияние" целевое пространство имена) и имена элементов, где это необходимо:

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/m" 
    xmlns:tns="http://www.example.org/m" elementFormDefault="qualified"> 

    <!-- import: different (i.e. not target) namespace --> 
    <import namespace="http://www.example.org/a" schemaLocation="so20046640a.xsd"/> 
    <import namespace="http://www.example.org/b" schemaLocation="so20046640b.xsd"/> 

    <!-- include: same namespace --> 
    <include schemaLocation="so20046640c.xsd"/> 
    <include schemaLocation="so20046640d.xsd"/> 

    <!-- redefine: same namespace --> 
    <redefine schemaLocation="so20046640e.xsd"/> 
    <redefine schemaLocation="so20046640f.xsd"/> 
</schema> 

... a.xsd:

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/a" 
    xmlns:tns="http://www.example.org/a" elementFormDefault="qualified"> 
    <element name="a" type="int"/> 
</schema> 

... b.xsd: То же самое. ..a.xsd но целевое пространство имен .../б

... c.xsd: То же, что ... a.xsd но целевое пространство имен .../м

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/m" 
    xmlns:tns="http://www.example.org/m" elementFormDefault="qualified"> 
    <element name="a" type="int"/> 
</schema> 

... d.xsd: То же, что ... c.xsd, но имя элемента b.

... e.xsd: То же, что ... c.xsd, но имя элемента e.

... f.xsd: То же, что ... c.xsd, но имя элемента f.

+0

Не могли бы вы привести несколько небольших примеров по импорту, включению и переопределению. – Vinayak

Смежные вопросы