Объединение двух XML-схем

#xml #xsd

#xml #xsd

Вопрос:

Мне нужен способ найти объединение двух XML-схем. Есть ли стандартный способ сделать это? Если нет, пожалуйста, дайте свои идеи

То, что я хочу, похоже :

Схема1:

 <xs:schema>
 <xs:element name="root">
  <xs:complexType>
    <xs:sequence>
      <xs:element type="xs:string" name="a"/>
      <xs:element type="xs:string" name="b"/>
    </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>
  

Схема2:

 <xs:schema>
 <xs:element name="root">
  <xs:complexType>
    <xs:sequence>
      <xs:element type="xs:string" name="c"/>
      <xs:element type="xs:string" name="d"/>
    </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>
  

Объединение будет выглядеть примерно так

 <xs:schema>
 <xs:element name="root">
  <xs:complexType>
    <xs:sequence>
      <xs:element type="xs:string" name="a" minOccurs="0"/>
      <xs:element type="xs:string" name="b" minOccurs="0"/>
      <xs:element type="xs:string" name="c" minOccurs="0"/>
      <xs:element type="xs:string" name="d" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>
  

Я не возражаю, если схема объединения проверяет больше XML, чем начальные две схемы, мне просто нужна компактная схема, которая проверяет весь XML, проверенный начальной двумя схемами

Пожалуйста, обсудите различные возможные объединения схем.