2012-07-09 37 views
0

我有一個定義類型爲xsd:id的字段的WSDL。我發現wsdl.exe將其視爲string,並且Silverlight客戶端VS ASP.NET Web服務一切正常。實際上,ID由DB生成爲自動遞增整數,並在放入SOAP時轉換爲字符串。在C#web服務中使用xsd:id

使用Java,xsd:ID是org.apache.axis.types.ID,整數不再起作用。我試圖找到xsd:ID類型的正確定義和示例,但沒有任何資金。

在哪裏可以找到這種類型的合法和非法值的例子?

回答

1

在這裏你可以找到XSD的定義:id字段:

http://www.schemacentral.com/sc/xsd/t-xsd_ID.html

的xsd:ID是一個多的NCName這又是在名稱限制的限制。如果您查看名稱的無效值,您將看到名稱不能以數字開頭。 因此,作爲名稱限制的ID不能以數字開頭。 在這種情況下,我猜Java是正確的,不接受整數。 正如鏈接頁面中所述,ID必須與此正則表達式匹配:[\ i - [:]] [\ c - [:]] *

+0

這個正則表達式對我來說似乎很奇怪。我試圖要求正則表達式解釋來解釋它,但它發現\我是一個無效的轉義(事實上我不記得任何\我字符類)。我可以只使用「id1」「id2」等ID嗎? – 2012-07-09 14:19:36

+1

查看此處:http://www.regular-expressions.info/refext.html \ i匹配任何可能是XML名稱的第一個字符的字符,即[_:A-Za-z] 是的,你應該可以使用「id1」,「id2」等。 – user1187008 2012-07-09 14:29:05