скажем, у меня есть фрагмент кода ниже standard.xsd
файла,
<xs:complexType name="StdBasicTags">
<xs:sequence>
<xs:element name="Name" type="xs:string" nillable="true">
<xs:annotation>
<xs:documentation>Name</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
Теперь у меня есть еще один файл XSD, который включает указанный выше файл и добавляет дополнительный элемент к указанному выше сложному типу StdBasicTags
.
Имя файла fullStandard.xsd
, и способ, которым я расширил StdBasicTags
, выглядит следующим образом:
<xs:include schemaLocation="standard.xsd"/>
........
........
<xs:complexType name="FullStdBasicTags">
<xs:complexContent>
<xs:extension base="StdBasicTags">
<xs:sequence>
<xs:element name="Surname" type="xs:string">
<xs:annotation>
<xs:documentation>Last name</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
У меня есть следующие запросы,
Я использую лицензированный инструмент Altova XmlSpy для создания образца XML для файла fullStandard.xsd, но я вижу только элемент
Name
, а не элементSurname
, как ожидалось. Может ли кто-нибудь сказать, какова возможная причина этого, что мне не хватает?Мне нужно указать другое имя,
FullStdBasicTags
, для расширенияStdBasicTags
и добавления нового элемента. Что в этом случае будет выводом полного окончательного XML-файла? Идея состоит в том, чтобы иName
, иSurname
находились под одним и тем же родительским комплексным типомStdBasicTags
.Наконец, что-то не так с архитектурой/выводом, который я ожидаю?
Обратите внимание**, что оба файла проверяются правильно. Также идея состоит в том, чтобы добиться того, что я только что упомянул, не внося никаких изменений в файл
standard.xsd
.
**ОБНОВЛЕНИЕ Я удивлен, что до сих пор никто не получил мне никаких предложений. Тем временем я попробовал это,
<xs:element name="FullNewRoot">
<xs:complexType>
<xs:sequence>
<xs:element ref="rootElementName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Где rootElementName
— корневой элемент файла standard.xsd. После добавления этого теперь я могу видеть дополнительные элементы. Но теперь проблема в том, что сначала появляется вся структура standard.xsd, а затем появляется то, что я переопределил в fullStandard.xsd, а я просто хочу, чтобы все они были сразу.
Пожалуйста, предложите что-нибудь.
String
не показано. Будет полезен образец XML-документа, который вы хотите проверить на соответствие fullstandard.xsd. Дополнительная помощь здесь: stackoverflow.com/help/mcve. - person Mathias Müller   schedule 04.01.2016String
не что иное, какxs:string
. Я отредактировал вопрос. Я надеюсь, что теперь это минимальный, полный и проверяемый пример. - person Dish   schedule 05.01.2016