c# - XML 模式不适用于 Web 服务软件工厂

标签 c# wcf xsd service-factory

我正在尝试创建一个 XML 架构以与 Web 服务软件工厂一起使用。这是一个相当简单的模式,只是一组人员对象。 (简化的)架构文件如下所示:

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified" 
    xmlns="http://tempuri.org/XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="Persons" type="PersonsType" />

    <xs:complexType name="PersonsType">
        <xs:sequence>
            <xs:element name="Person" type="PersonType" minOccurs="0"
                maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="PersonType">
        <xs:all>
            <xs:element name="PersonName" type="xs:string" />
            <xs:element name="PersonAge" type="xs:integer" />
        </xs:all>
    </xs:complexType>

</xs:schema>

它是 person 元素的简单集合,父元素称为 Persons。

当我尝试验证我的 .serviceContract 文件时,出现错误“文件名‘Persons.xsd’不符合 DataContactSerializer”。

有谁知道如何修复这个模式,以便它可以与 Web 服务软件工厂一起工作?对于奖励积分,我必须担心的下一个结构将是公司的递归列表。对于如何制作适用于 WSSF 的递归模式的任何建议,我们也将不胜感激。

最佳答案

您是否已尝试避免命名类型?

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
  elementFormDefault="qualified" 
  xmlns="http://tempuri.org/XMLSchema.xsd"
  xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="Persons">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Person" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:all>
                            <xs:element name="PersonName" type="xs:string" />
                            <xs:element name="PersonAge" type="xs:integer" />
                        </xs:all>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
         </xs:complexType>
    </xs:element>

您也可以尝试将 中的 更改为

关于c# - XML 模式不适用于 Web 服务软件工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186357/

相关文章:

c# - 当主服务器出现故障时,有没有办法自动使 MongoDB C# 驱动程序不抛出 EndOfStreamException ?

c# - 允许 Newtonsoft 的 JsonConvert 访问内部 getter/setter

c# - WCF 双工服务忽略自定义用户名身份验证

java - JAXB 模式在哪里发布?

xml - 强制 XSD Schema 中的属性为主键(并排序)

c# - LINQ Join,如何施加条件

C# XML Serializer 不会存储属性

c# - WCF - 在调用之间共享/缓存数据

c# - 通过 ADO.NET 数据服务重用现有类型

java - 贾克斯B : is it recommended to use JAXB to get java objects from xml in non-webservice project