XML создает имя элемента из XSD ComplexType, а не из имени элемента - PullRequest
0 голосов
/ 12 октября 2019

У меня есть схема XSD, сгенерированная в код C # с использованием SVCUTIL.exe. Затем я заполняю сгенерированный код данными и возвращаю его в качестве ответа в службе WCF.

В сгенерированном ответе xml в одном из моих элементов имя элемента - это имя сложного типа, а неимя элемента в XSD. Пример:

  <xs:complexType name="ReadSchoolsResponseType">
    <xs:sequence>
      <xs:element name="Schools" type="SchoolsType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SchoolsType">
    <xs:sequence>
      <xs:element name="School" type="SchoolType" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

и сгенерированный XML:


<ReadSchoolsResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Schools>
    <SchoolType> </SchoolType>
  </Schools>
</ReadSchoolsResponse

Почему элемент School отображается как SchoolType? У меня много элементов, созданных таким же образом, и они корректно сериализуются. Спасибо.

1 Ответ

0 голосов
/ 12 октября 2019

Итак, я нашел решение: удалите имя сложного типа SchoolsType и переместите детали элемента.

  <xs:complexType name="SchoolsType">
    <xs:sequence>
      <xs:element name="School" maxOccurs="unbounded"/>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="asdf" type="xs:int"/>
            <xs:element name="qwer" type="xs:dateTime"/>
            <xs:element name="yxcv" type="xs:string"/>
            <xs:element name="tzui" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

Однако я до сих пор не знаю, почему этот код не работает.

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