XSD: значение по умолчанию сложного типа в виде строки - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть схема xsd, такая как:

<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Она отлично работает, если нет проблем с обработкой данных:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

Но если обработка данных не удается, тогда данные приходяткак:

<employee> Data not found </employee>

И это также верно.Мой запрос заключается в том, могу ли я дать любое строковое значение по умолчанию для моего определения схемы, например:

<xs:element name="employee" type="personinfo" default="Data not found"/>

Или есть какой-нибудь альтернативный способ?

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете использовать mixed="true", если у вас смешанные типы данных.Вы ожидали следующего:

<xs:element name="employee" maxOccurs="unbounded" minOccurs="0">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element type="xs:string" name="firstname" minOccurs="0"/>
      <xs:element type="xs:string" name="lastname" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Я нашел его, используя следующую стратегию, генерируя * .xsd, используя следующие данные XML.

<employees>
<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

<employee>
data not found
</employee>
</employees>

Надеюсь, это поможет!

...