2015-04-21 3 views
1

Я ищу для автоматизации метода замены объявления локального элемента в объявлении глобального элемента.Преобразование локального элемента в объявление глобального элемента

Как это:

<xs:schema> 
    ... 
    <xs:element name="aaa"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="bbb"> 
      ....content bbb ... 
     <xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="ccc"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="bbb"> 
      ....content bbb' ... 
     <xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    ... 
<xs:schema> 

в

<xs:schema> 
    ... 
    <xs:element name="aaa"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="bbb"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="ccc"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="bbb"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="bbb"> 
    <xs:complexType> 
     .... Valide for bbb and bbb' ... 
    </xs:complexType> 
    </xs:element> 
    ... 
<xs:schema> 

Кто-нибудь знает способ или средство для достижения этой цели? Благодарим вас за помощь.

ответ

0

Вы можете использовать ref в существующий глобальный элемент, то вы можете определить элемент ГЭБ, например, как это справедливо как для ГЭБ и БББ»случаях:

<xs:schema> 
    ... 
    <xs:element name="aaa"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="bbb"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="ccc"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="bbb"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="bbb"> 
    <xs:complexType> 
     .... Valide for bbb and bbb' ... 
    </xs:complexType> 
    </xs:element> 
    ... 
<xs:schema> 
+0

К сожалению, произошла ошибка в моем образце (Я только что исправил это). Я знаю, что необходимо использовать атрибуты ref. Мой опрос в основном связан с существующими методами слияния и «упорядочения» содержимого bbb и bbb внутри одного контента. –

+0

bbb и bbb 'значительно отличаются? Вы можете использовать выбор внутри bbb-типа; вы можете иметь тип bbb как абстрактный тип и иметь 2 реализации; вы также можете использовать substitutionGroup на bbb, где содержимое bbb может заменить bbb. – csauvanet