Class XSD不能生成类,但可以在类似的文件上工作

Class XSD不能生成类,但可以在类似的文件上工作,class,xsd,auto-generate,xsd.exe,xsd2code,Class,Xsd,Auto Generate,Xsd.exe,Xsd2code,过去我将很多xsd转换为C#,但今天我面临一个新的错误消息:“无法生成类,因为找不到复杂类型的顶级元素。” 我有两个文件有这个问题。我读了很多关于这方面的帖子,他们帮助我解决了我遇到的两个问题中的至少一个 我修复的文件是: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:mg="urn:crif-messagegateway:2006-08-23" xmlns:xs="http://www.w3.org/2001/

过去我将很多xsd转换为C#,但今天我面临一个新的错误消息:“无法生成类,因为找不到复杂类型的顶级元素。”

我有两个文件有这个问题。我读了很多关于这方面的帖子,他们帮助我解决了我遇到的两个问题中的至少一个

我修复的文件是:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:mg="urn:crif-messagegateway:2006-08-23" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:crif-messagegateway:2006-08-23" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="MGRequest" type="xs:string"/>
    <xs:element name="MGResponse" type="xs:string"/>
</xs:schema>

我把它编辑成:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:mg="urn:crif-messagegateway:2006-08-23" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:crif-messagegateway:2006-08-23" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="MGRequest">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string" />
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MGResponse">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string" />
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
</xs:schema>

现在,我还尝试转换以下xsd文件(与之前的修复文件非常类似),但它会抛出错误“无法生成类,因为找不到复杂类型的顶级元素。”。问题是什么?上面的工作文件有什么不同

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:mg="urn:crif-messagegateway:2006-08-23" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:crif-messagegateway:2006-08-23" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="MGRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:any namespace="##other"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="MGResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:any namespace="##other"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>


我也尝试过使用XSD2代码,但得到的只是一个空类。

我想它没有必要创建一个类来包装一个基元类型,如果您运行它,您会得到这个结果

namespace LiquidTechnologies.GeneratedLx.Mg
{
    #region Elements
    /// <summary>A class representing the root XSD element MGRequest@urn:crif-messagegateway:2006-08-23</summary>
    /// <XsdPath>schema:schema.xsd/element:MGRequest</XsdPath>
    /// <XsdFile>file://sandbox/schema.xsd</XsdFile>
    /// <XsdLocation>3:5-3:52</XsdLocation>
    [LxSimpleElementDefinition("MGRequest", "urn:crif-messagegateway:2006-08-23", ElementScopeType.GlobalElement)]
    public partial class MGRequestElm
    {
        /// <summary>Holds the <see cref="System.String" /> (xs:http://www.w3.org/2001/XMLSchema:string) value of the element</summary>
        /// <XsdPath>schema:schema.xsd/element:MGRequest</XsdPath>
        /// <XsdFile>file://sandbox/schema.xsd</XsdFile>
        /// <XsdLocation>3:5-3:52</XsdLocation>
        [LxValue(LxValueType.Value, XsdType.XsdString)]
        public System.String Value { get; set; } = "";

    }

    /// <summary>A class representing the root XSD element MGResponse@urn:crif-messagegateway:2006-08-23</summary>
    /// <XsdPath>schema:schema.xsd/element:MGResponse</XsdPath>
    /// <XsdFile>file://sandbox/schema.xsd</XsdFile>
    /// <XsdLocation>4:5-4:53</XsdLocation>
    [LxSimpleElementDefinition("MGResponse", "urn:crif-messagegateway:2006-08-23", ElementScopeType.GlobalElement)]
    public partial class MGResponseElm
    {
        /// <summary>Holds the <see cref="System.String" /> (xs:http://www.w3.org/2001/XMLSchema:string) value of the element</summary>
        /// <XsdPath>schema:schema.xsd/element:MGResponse</XsdPath>
        /// <XsdFile>file://sandbox/schema.xsd</XsdFile>
        /// <XsdLocation>4:5-4:53</XsdLocation>
        [LxValue(LxValueType.Value, XsdType.XsdString)]
        public System.String Value { get; set; } = "";

    }

    #endregion

}
namespace LiquidTechnologies.GeneratedLx.Mg
{
#区域元素
///表示根XSD元素的类MGRequest@urn:crif messagegateway:2006-08-23
///schema:schema.xsd/element:MGRequest
/// file://sandbox/schema.xsd
/// 3:5-3:52
[LxSimpleElementDefinition(“MGRequest”,“urn:crif messagegateway:2006-08-23”,ElementScopeType.GlobalElement)]
公共部分类管理器
{
///持有(xs:http://www.w3.org/2001/XMLSchema:string)元素的值
///schema:schema.xsd/element:MGRequest
/// file://sandbox/schema.xsd
/// 3:5-3:52
[LxValue(LxValueType.Value,XsdType.XsdString)]
public System.String值{get;set;}=”“;
}
///表示根XSD元素的类MGResponse@urn:crif messagegateway:2006-08-23
///schema:schema.xsd/element:MGResponse
/// file://sandbox/schema.xsd
/// 4:5-4:53
[LxSimpleElementDefinition(“MGResponse”,“urn:crif messagegateway:2006-08-23”,ElementScopeType.GlobalElement)]
公共部分类管理器响应seelm
{
///持有(xs:http://www.w3.org/2001/XMLSchema:string)元素的值
///schema:schema.xsd/element:MGResponse
/// file://sandbox/schema.xsd
/// 4:5-4:53
[LxValue(LxValueType.Value,XsdType.XsdString)]
public System.String值{get;set;}=”“;
}
#端区
}
液体XML对象对于小型xsd是免费的