使用 xsd.exe 生成 C# 类时出错



我有XML文件,我想使用xsd.exe工具从中创建C#类。但是在运行该工具时,它会给出以下错误

无法将嵌套关系或元素列添加到包含简单内容列的表中

我正在使用此语句

c:Program Files (x86)Microsoft SDKsWindowsv7.0ABin>xsd d:XMLResponse.xml /o:d:

上面讨论的xml是一个响应,所以我想对它进行类化以操纵该响应。

XML文件太长了,我无法粘贴它,所以我为它提供了一个链接。链接共享只是为了理解问题,而不是别的。

@Adriano 我已经看到了这个问题,但我在我的 xml 中看不到任何具有不同结构的重复 xml 元素。

另一个线程中提到了两件事:

1)您的问题是您在文档中的某处具有相同的元素名称,但结构不同。

2)看起来您的xml包含一个同时具有文本子项(简单内容)和其他元素子项的元素。

经过非常快速的检查,我在您的 xml 中找到了两者的示例:

172行:

<ConditionValues> ConditionValuesDefinitionType </ConditionValues> 

306 行及更远:

<ConditionValues> ConditionValuesType 
  <Condition> ConditionType 
    <DisplayName> string </DisplayName> 
    <ID> int </ID> 
  </Condition> 
  <!-- ... more Condition nodes allowed here ... -->
  <ConditionHelpURL> anyURI </ConditionHelpURL> 
</ConditionValues> 

我希望这有帮助:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public class GetCategoryFeaturesResponse
{
string m_Category = "";
public string Category {
    get { return m_Category; }
    set { m_Category = value; }
}
string m_CategoryVersion = "";
public string CategoryVersion {
    get { return m_CategoryVersion; }
    set { m_CategoryVersion = value; }
}
string m_FeatureDefinitions = "";
public string FeatureDefinitions {
    get { return m_FeatureDefinitions; }
    set { m_FeatureDefinitions = value; }
}
string m_SiteDefaults = "";
public string SiteDefaults {
    get { return m_SiteDefaults; }
    set { m_SiteDefaults = value; }
}
string m_UpdateTime = "";
public string UpdateTime {
    get { return m_UpdateTime; }
    set { m_UpdateTime = value; }
}
string m_Ack = "";
public string Ack {
    get { return m_Ack; }
    set { m_Ack = value; }
}
string m_Build = "";
public string Build {
    get { return m_Build; }
    set { m_Build = value; }
}
string m_CorrelationID = "";
public string CorrelationID {
    get { return m_CorrelationID; }
    set { m_CorrelationID = value; }
}
string m_Errors = "";
public string Errors {
    get { return m_Errors; }
    set { m_Errors = value; }
}
string m_HardExpirationWarning = "";
public string HardExpirationWarning {
    get { return m_HardExpirationWarning; }
    set { m_HardExpirationWarning = value; }
}
string m_Timestamp = "";
public string Timestamp {
    get { return m_Timestamp; }
    set { m_Timestamp = value; }
}
string m_Version = "";
public string Version {
    get { return m_Version; }
    set { m_Version = value; }
}
  }

我没有检查代码,通过此工具
生成附言:我删除了使该工具疯狂的xml注释:)

最新更新