簡體   English   中英

XML 從 XSD ComplexType 創建元素名稱,而不是從元素名稱

[英]XML creates element name from XSD ComplexType, not from Element name

我有一個使用 SVCUTIL.exe 生成到 C# 代碼中的 XSD 模式。 然后我用數據填充生成的代碼並將其作為 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? 我有很多以相同方式創建的元素,並且可以正確序列化。 謝謝你。

所以我想出了解決方案:刪除 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>

但是我仍然不知道為什么有問題的代碼不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM