2012-06-20 78 views
6

我們需要使用ACORD Standard來實現WCF Web服務。Acord保險標準。有沒有人處理這個混亂?

但是,我不知道從哪裏開始,因爲這個標準是人爲和非常複雜的。我的眼睛總是混亂。

我想使用WSCF.Blue從多個XSD中提取類我有,但到目前爲止,我所得到的只是一堆廢話:一個包含50,000多行代碼的.cs文件,它凍結了我的VS2010所有時間。

有沒有人已經穿過死亡之谷(ACORD標準)並做出了它?我真的很感謝一些幫助。

+1

你需要什麼_specific_幫助?我建議編輯問一個特定的問題,因爲這太籠統了 - 是通常會被關閉的東西。 – halfer

+1

從XSD生成代碼文件的項目不需要在使用它的同一個項目中(不應該,很可能),甚至不需要成爲同一個解決方案的一部分(例如,它可以是引用的庫)......將緩解凍結問題,即使它不一定能解決其他問題:)考慮清理帖子中的語言以使問題更加客觀。 – 2012-06-20 21:06:56

+1

我一次處理事務($)文件的格式,即快速查看鏈接後,幾乎與您遇到的情況相同。我的建議是,不要打擊系統。這將是醜陋的。它會一團糟。你會做一次,你永遠不會回頭看。不要試圖做出任何幻想,只是讓它工作。那些日子是我程序員最糟糕的日子。祝你好運 ! –

回答

1

我已經與Accord PCS暴露報告標準一起工作,是的它是一場噩夢。我還與其他大型標準如FPML和SportsML合作。

您需要確定模式中所需的哪些類型。你如何做到這一點取決於你,但VS模式查看器應該能夠處理它。如果不需要嘗試XmlSpy或者只需要手動完成。確保你有一個良好的英國廣播公司...

機會是你會發現,你可以通過使用約1%的標準可用的類型,以滿足您的要求。

您可能會發現,您可以用最小的一組值來表示核心對象,因爲大多數節點將是minOccurs=0nillable

然後,您可以使用xsd.exe上的/ element開關來爲您需要的類型生成代碼。正如一位評論者所說,在這裏吞嚥並不容易。諷刺的是,標準應該讓每個人的生活更輕鬆。

3

這聽起來像你正走向正確的道路,但失去了森林。
ACORD標準非常龐大且有意爲之,因爲它爲數百種不同的消息提供支持。就像你沒有下載維基百科的全部內容來獲得一些文章一樣,你不需要ACORD標準中的所有類來支持實現一些消息。如果你知道你需要支持哪些消息,那麼你可以生成一個完整的XSD子集,這將是非常易於管理的。

正如Hugh的回答中所提到的,對於任何一條消息,只使用完整XSD的一小部分。你如何去做這將取決於你的項目的具體情況。如果您正在尋找關於如何生成完整XSD子集的想法,請嘗試聯繫ACORD員工尋求[email protected]的幫助。他們應該能夠爲您提供一些入門幫助。

+0

「就像你沒有下載維基百科的全部內容以獲得一些文章一樣,你不需要ACORD標準中的所有類來支持實現一些消息。」非常好地說。這通常被稱爲「模式切片」。 Acord還爲會員提供了許多預製的「交易」,這些交易已經被分割成更小的模式。 –

3

我寫了一個ACORD到c#類庫轉換器,然後用於幾個大型商業保險產品。它將所有ACORD XML映射爲一個非常好的簡潔,可擴展的C#類。所以我知道你從哪裏來!如果他們全職工作(假設除了查詢風格的消息以外),那麼我認爲普通的編碼器在大約3-4個月內不會「得到它」。當試圖從後端數據庫映射到另一個ACORD WS時,真正的問題出現了。所有的運營商,供應商和代理商都有自定義規則。

我最好的建議是找到工作代碼示例(如果您需要它們,我有噸),甚至可能會讓供應商或運營商讓您在測試環境中連接ACORD。

+1

不錯的作品。你能分享你的ACORD2C#圖書館嗎? – 2013-10-09 07:54:05

+0

這將有所幫助.. –

1

如果您正在使用.NET讀取/寫入ACORD文檔,我偶然發現CodePlex上的「IVC Software Factory for ACORD Standards」,編號爲http://ivc.codeplex.com

從有限的文檔中,它看起來好像該庫可以將對象轉換爲ACORD XML文檔,反之亦然。源代碼帶有不同的「提供者」,即不同的ACORD交易類型,如103或121.

希望這有助於。

0

我會建議不要爲整個標準創建一個模型。我們可以傳遞XML而不是序列化到模型中,而是將其加載到XDocument/XElement中,並使用Linq查詢它並使用Linq將Xml更新到DOM。因此,不會將XML加載到強類型模型,而只是加載XML。沒有模型,只是一個XML文檔。

從那裏,可以根據需要從XML中選取數據。

使用這種方法,由於XElements將被傳遞到任何地方,代碼將變得醜陋,並且上下文很少,並且會有大量XPath的魔術字符串來查詢和定義元素,但它可以工作。此外,一切都是一個字符串,所以將有實用程序轉換方法轉換爲數字,日期時間等。

從我的預期來看,我將Acord的一部分建模爲使用XmlSerializer的對象模型,但它遠遠超過500類。該模型不適用於XSD或其他版本,但手動製作並需要一些時間。工具會產生怪物不能使用的類(如你所提到的)和/或平坦崩潰。作爲一個例子,我試圖將XSD加載到Stylus Studio中,並且它多次崩潰。

所以,最好的辦法是如果你的時間限制在XDocument中,而不是試圖在模型中繪製出所有的東西。我知道這很糟糕,但一般來說Acord基本上是一個巨大的數據熱點混亂。