我得到以下错误时运行我的应用程序:附加信息:错误在第2行位置64.从命名空间http://www.w3.org/2001/XMLSchema-instance期待元素CustomeLeads...遇到名称为“自定义线索”、命名空间的“元素”。
我不明白为什么我会收到这个错误消息,因为正如你从XML中看到的,“自定义领导”包含在XML中。如果我取出命名空间,文件将不会读取元素。包括命名空间似乎工作,但似乎不能弄清楚为什么我得到这个错误。以及如何添加命名空间而不会出现此错误?
<?xml version="1.0" encoding="UTF-8"?>
<CustomerLeads xsi:noNamespaceSchemaLocation="BasicCustomerLead.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CustomerLead>
<FirstName>Paul</FirstName>
<LastName>Smith</LastName>
<Email>psmith@example.com</Email>
</CustomerLead>-<CustomerLead>
<FirstName>Nicole</FirstName>
<LastName>Farhi</LastName>
<Email>nicole.farhi@example.com</Email>
</CustomerLead>-<CustomerLead>
<FirstName>Raf</FirstName>
<LastName>Simons</LastName>
<Email>rafs@example.org</Email>
</CustomerLead>
</CustomerLeads>
代码:
namespace Customer
{
[DataContract(Name = "CustomerLeads", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public class CustomerLeads
{
[DataMember()]
public string FirstName { get; set; }
[DataMember()]
public string LastName { get; set; }
[DataMember()]
public string EmailAddress { get; set; }
public CustomerLeads unSortedLeads(string xmFilelPath)
{
// doc.Load("C:/Users/Admin/Downloads/potentialcustomers.xml");
ICollection<CustomerLeads> deserializedPerson;
CustomerLeads lead;
FileStream fs = new FileStream(xmFilelPath, FileMode.Open);
XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
DataContractSerializer ser = new DataContractSerializer(typeof(CustomerLeads));
lead = (CustomerLeads)ser.ReadObject(reader, true);
reader.Close();
fs.Close();
FirstName = lead.FirstName.ToString();
// foreach(CustomerLeads leads in deserializedPerson.)
return lead;
}
}
}
您的DataContract
属性断言customerreads
元素应位于http://www.w3.org/2001/XMLSchema-instance
XML名称空间。事实并非如此。在XML中,CustomerLeads
没有名称空间(实际上是一个空名称空间)。
请尝试从DataContract
属性中删除名称空间
设置。
您可以尝试
<xsi:CustomerLeads xsi:noNamespaceSchemaLocation="BasicCustomerLead.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CustomerLead>
<FirstName>Paul</FirstName>
<LastName>Smith</LastName>
<Email>psmith@example.com</Email>
</CustomerLead>-<CustomerLead>
<FirstName>Nicole</FirstName>
<LastName>Farhi</LastName>
<Email>nicole.farhi@example.com</Email>
</CustomerLead>-<CustomerLead>
<FirstName>Raf</FirstName>
<LastName>Simons</LastName>
<Email>rafs@example.org</Email>
</CustomerLead>
</xsi:CustomerLeads>
其他元素也可能需要前缀。
当引用另一个XSD中的定义时,我们对不同命名空间中的另一个XSD使用“import”,对相同命名空间中的另一个XSD使用“include”。
我请求soapenv提供以下信息: 我想删除xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance" 我能用我的服务吗?也许你可以设定组织。阿帕奇。轴客户调用具有某些属性的对象。。。我不知道。
下面是我的XSD。我犯了错误。你能验证一下吗? 请帮帮我。
当我试图在sap中使用外部Web服务(WSDL文件)进行数据集成时,我在sap中创建客户端代理并给出了服务提供者webservice URL http://172.31.3.48:8717/?WSDL它给出了代理生成错误它给出了“Liberary haldler Exception”“incorrect value:unknown namespace http://www.w3.org/2001/
是否有任何方法使DataContractSerializer在节点为空值时不写入节点?
我需要将XML转换为另一个XML,并更改名称空间。我需要在根元素中添加名称空间t。输入XML:- 我需要以下预期输出XML:- 我尝试了以下XSLT,但没有得到预期的结果:- 但作为:-