我創建了簡單的Web服務在C#:如何編譯使用DataSet(xs:schema)的模式?
public void AddData(DataSet ds)
生成的模式(WSDL)看起來是這樣的:
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema">
...
<s:element ref="s:schema" />
...
</s:schema>
注意的架構不包含任何進口/ include元素。
我試圖加載此模式爲ac#System.Xml.XmlSchema並將其添加到System.Xml.XmlSchemaSet:
var set = new XmlSchemaSet();
var fs = new FileStream(@"c:\temp\schema.xsd", FileMode.Open);
var s = XmlSchema.Read(fs, null);
set.Add(s);
set.Compile();
最後一行拋出此異常:
The 'http://www.w3.org/2001/XMLSchema:schema' element is not declared.
它是有道理的:.Net生成的模式使用在未導入的模式中聲明的「s:schema」類型。
- 爲什麼.NET創建一個非有效的架構?
- 如何編譯架構呢?我所做的是在http://www.w3.org/2001/XMLSchema下載架構並將其添加到XmlSchemaSet中。由於該聯機模式包含DTD定義,因此這不起作用。我不得不手動刪除它,現在所有的作品。這是有道理的,還是我錯過了什麼?
否,則表示該服務將返回一個'DataSet'。這不是一個好主意。預計Java客戶端如何處理DataSet。通常,不要在Web服務的合約中使用任何.NET特定的類型。 – 2015-01-10 01:29:33