視覺工作室2005 XSD數據集,.NET 2.0C#創建從包含數字簽名
我工作的發送和接收基於第三方模式文件我不能修改XML消息的消息服務。 (我已經驗證了模式有效,並使用Altova的XMLSpy生成了一個示例xml消息。)我發現處理此需求的最佳解決方案是基於模式創建數據集,然後使用DataSet.ReadXml填充數據集( )。 DataSet.WriteXml()應該可以在創建消息時使用。
當我在過去使用MSDataSetGenerator自定義工具創建DataSets關閉.xsd文件時。
Custom tool error: Failed to generate code. Unable to convert input xml file content to a DataSet. The 'http://www.w3.org/2000/09/xmldsig#:KeyInfo' element is not declared.
下面是有關數字簽名/密鑰信息/從模式文件簽名行:但是架構文件我通過MSDataSetGenerator與錯誤運行它時有誤差的。
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
而且在文件中它引用在架構中定義兩個對象:在做
<xs:element ref="ds:Signature" minOccurs="0"/>
<xs:element ref="ds:KeyInfo" minOccurs="0"/>
我也嘗試加載模式:
DataSet ds = new DataSet();
ds.ReadXmlSchema("schema.xsd");
但也拋出與未聲明KeyInfo相同的錯誤。
是否有另一種方法來創建我缺少的數據集或我需要設置爲可以使用MSDataSetGenerator的選項?還是有人知道一個更好的方式來設置整體,而不是使用基於提供的模式的數據集?
我很欣賞這種迴應,但這是4年前問的:)。有問題的模式文件頂部沒有DOCTYPE標記。我最終只是修改了模式文件,並告訴第三方我正在這樣做,因爲他們無法給我一個替代方案。 – Equixor 2015-04-21 23:08:33
我意識到,只是想幫助別人(比如我),因爲這些年來這是一個沒有答案的問題...... – 2015-04-24 19:29:25