我有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注释:)