Объедините xsd, который импортирует другой xsd как один файл xsd - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть главный xsd-файл, скажем «Master.xsd», который импортирует другой xsd «LinckerXSD1» внутри него. Я хочу скопировать схему LinckerXSD1 в Master, чтобы он привел к другому файлу xsd. Это нужно делать рекурсивно, это означает, что Master.xsd может иметь более одного оператора импорта, а LinckerXSD1 может импортировать другой xsd внутри него !!!

Master.xsd :- 
<xs:import namespace="file:////home/i88691/work-Area/xsdLinker/LinckerXSD1.xsd" schemaLocation="LinckerXSD1.xsd"/>
<xs:element name="school">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="firstname" type="xs:string"/>
            <xs:element name="lastname" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="Addresses" minOccurs="0" nillable="true">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Entry" type="Address" minOccurs="0" maxOccurs="unbounded" nillable="true" xmlns="file:////home/i88691/work-Area/xsdLinker/LinckerXSD1.xsd"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

LinckerXSD1 :- 

<xs:element name="Entry">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="hosename" type="xs:string"/>
            <xs:element name="hoseplase" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

Required Output :-
<xs:import namespace="file:////home/i88691/work-Area/xsdLinker/LinckerXSD1.xsd" schemaLocation="LinckerXSD1.xsd"/>
<xs:element name="school">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="firstname" type="xs:string"/>
            <xs:element name="lastname" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="Entry">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="hosename" type="xs:string"/>
            <xs:element name="hoseplase" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

1 Ответ

0 голосов
/ 15 апреля 2019

Вы можете сделать это вручную (как вы, кажется, делаете) или существует ряд инструментов, которые сделают это за вас, взгляните на Liquid Studio - Flatten Schema .Это не расширит определения на месте, но поместит все в один файл.

Примечание: Свертывание нескольких XSD в один возможно, только если все XSDиспользовать одно и то же пространство имен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...