当前流程
我有一个来自Agresso网站的有效XSD,我已成功转换为课程,使用 xsd.exe
我可以定义我需要的所有对象,例如
ABWInvoice oInvoiceAgresso = new ABWInvoice() { };
List<ABWInvoiceInvoice> invoiceslist = new List<ABWInvoiceInvoice>();
List<ABWInvoiceInvoiceDetail> invoicesDetailsList = new List<ABWInvoiceInvoiceDetail>();
然后填充数据
_parent.invoiceslist.Add(new ABWInvoiceInvoice
{
InvoiceNo = _parent.InvoicesResultSet.Numeric1,
Header = new ABWInvoiceInvoiceHeader
{
InvoiceDate = _parent.InvoiceHeaders.InvoiceDate,
DueDate = _parent.vDueDate.Value,
OrderRef = _parent.InvoicesResultSet.GenericId,
Currency = _parent.Currency.Actual_Currency.TrimEnd(),
Seller = new ABWInvoiceInvoiceHeaderSeller { SellerNo = 1000 }
},
Details = _parent.invoicesDetailsList.ToArray(),
Summary = _parent.invoiceSummary
});
我将节省剩下的代码......最终我得到一个有效的XML文件,其中包含以下与Date相关的元素,这些元素来自上述XSD的agrlib命名空间:
<InvoiceDate>2018-02-01</InvoiceDate>
<DueDate>2018-02-01</DueDate>
问题
现在有一位客户回来了,说他们希望保留对agrlib的引用,即他们希望拥有以下内容:
<agrlib:InvoiceDate>2018-02-01</InvoiceDate>
<agrlib:DueDate>2018-02-01</DueDate>
我已经使用w3schools XML validator进行了检查,看起来他们的请求绝对有效,但也可能意味着他们使用自己的解析工具。
问题
我怎样才能在C#中实现他们的请求?