一般来说,我正在寻找一种对业务流程进行建模的方法。
我经常找到 UML 和 BPMN 作为这个问题的答案。现在我想用程序检查这个模型。只有一个 UML 规范这个元素应该是什么样子,而不是这个不同的模型应该如何保存。这就是我仔细研究 BPMN 的原因。 BPMN 2.0 规范是对象管理组。
我下载了 BPMN 编辑器并开始使用这个符号。现在我想开始编写一个程序来检查这个 BPMN 2.0 文件(更准确地说它们是 xml 文件)。是否有任何 .NET 框架和/或实现可以与此 BPMN 配合使用?我只是不想为此编写自己的扩展 XML 解析器。
如果不是:还有哪些其他模型可用于对此类模型进行编程检查?
关于检查:我想搜索是否可以在模型中找到不同类型的信息,如果找不到此信息,则发出警告。
.NET 似乎目前还没有 BPMN 2.0 解析器,但是有了 xsd.exe(Microsoft SDK 的一部分),您可以自己创建一个解析器,而不仅仅是针对 BPMN。怎么做:
- 从 omg 下载 5 个 xsd 文件:http://www.omg.org/spec/BPMN/2.0/ http://www.omg.org/spec/BPMN/2.0/并将它们放在同一个文件夹中。
- 使用四个参数运行 xsd.exe:
xsd.exe DC.xsd DI.xsd BPMNDI.xsd BPMN20.xsd /classes
第五个文件将由应用程序添加。
确保 xsd 的顺序正确。否则就行不通。
在我的 Maschine 上,调用如下所示:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\xsd.exe" "C:\Users\me\DC.xsd" "C:\Users\me\DI.xsd" "C:\Users\me\BPMNDI.xsd" "C:\Users\me\BPMN20.xsd" /classes
因此,您将收到包含所有课程的 BPMN20.cs。您甚至可以更改输出语言(默认为 C#)。赶紧跑xsd.exe
不带参数即可查看所有选项。
要在.Net中使用它,请确保将System.Xml添加为Assembly,然后您可以像这样获取对象:
var serialzer = new XmlSerializer(typeof(tDefinitions));
var XmlStream = new StreamReader("bpmn.xml");
var document= (tDefinitions) serialzer.Deserialize(XmlStream);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)