我们需要使用ACORD Standard实现WCF Web服务。
但是,我不知道从哪里开始这个,因为这个标准是非常的,非常令人费解。我眼中一片混乱。
我正在尝试使用WSCF.Blue从我拥有的多个XSD中提取类,但到目前为止,我得到的是一堆垃圾:一个包含50,000行代码的.cs文件,一直冻结我的VS2010
有没有人通过死亡之谷(ACORD标准版)走过去并成功了?我真的很感激一些帮助。
答案 0 :(得分:3)
听起来你正走在正确的道路上,但却迷失在森林里 ACORD标准版非常庞大且有意,因为它支持数百种不同的消息。就像你没有下载所有维基百科来获得一些文章一样,你不需要ACORD标准中的所有类来支持一些消息的实现。如果您知道需要支持哪些消息,那么您可以生成完全可管理的完整XSD的子集。
正如Hugh的回答中提到的,对于任何一条消息,只使用完整XSD的一小部分。你如何做这将取决于你的项目的具体情况。如果您正在寻找有关如何生成完整XSD子集的想法,请尝试联系ACORD工作人员以获取PCS@acord.org的帮助。他们应该能够在入门时为您提供一些帮助。
答案 1 :(得分:1)
我使用过Accord PCS暴露报告标准,是的,这是一场噩梦。我还使用过FPML和SportsML等其他大型标准。
您需要准确确定所需模式中的哪些类型。如何执行此操作取决于您,但VS架构查看器应该能够处理它。如果不是,请尝试使用XmlSpy,或者只需手动操作即可。确保你有良好的学士学位......
您可能会发现使用标准中约1%的类型可以满足您的要求。
您可能会发现,您可以使用非常小的值集来表达核心对象,因为大多数节点将是minOccurs=0
或nillable
。
然后,您可以使用xsd.exe上的/ element开关生成所需类型的代码。
正如一位评论者所说,这里没有容易吞咽的药片。具有讽刺意味的是,标准应该让每个人的生活更轻松。
答案 2 :(得分:1)
如果您希望使用.NET读/写ACORD文档,我只是在http://ivc.codeplex.com的CodePlex上偶然发现了“用于ACORD标准的IVC软件工厂”。
从有限的文档中可以看出,这个库可以将对象转换为ACORD XML文档,反之亦然。源代码带有不同的“提供者”,即不同的ACORD交易类型,如103或121.
希望这有帮助。
答案 3 :(得分:0)
我建议不要为整个标准创建模型。可以只传递XML而不是序列化到模型中,而是将其加载到XDocument / XElement中,并使用Linq查询它并使用Linq更新DOM到Xml。因此,没有人将XML加载到强类型模型,而只是加载XML。没有模型,只有XML文档。
从那里,可以根据需要从XML中选择数据。
使用这种方法,代码将是丑陋的并且几乎没有上下文,因为XElements将在任何地方传递,并且将有大量的魔术字符串XPath来查询和定义元素,但它可以工作。此外,一切都是字符串,因此将有实用程序转换方法转换为数字,日期时间等。
从我的角度来看,我已经使用XmlSerializer将Acord的一部分建模为一个对象模型,但它已超过500个类。该模型没有从XSD或其他模型加工,但手动制作并花了一些时间。工具将产生怪物不可用的类(如你所提到的)和/或平坦的崩溃。作为一个例子,我试图将XSD加载到Stylus Studio中并且它已经崩溃了好几次。
所以,如果您的时间紧张加载到XDocument中,而不是尝试映射模型中的所有内容,那么最好的选择。我知道这很糟糕,但Acord一般来说基本上是一个巨大的数据热点。