【问题标题】:Creating an intermediate graph from XML file of UML activity diagram in java在 java 中从 UML 活动图的 XML 文件创建中间图
【发布时间】:2016-09-16 12:05:02
【问题描述】:

我有一个为 UML 活动图生成的 XML。我想为 XML 生成一个树结构,以便找到可能的转换路径。尝试使用 DOMXML java 解析器,但没有结果。我需要将活动分组为节点,将转换分组为边。还附加了 XML 文件。 enter image description here请帮忙

Java 代码

    public class DomXMLParser {

public static void main(String[] args)  throws ParserConfigurationException, SAXException, 
IOException, XPathExpressionException {
//DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
    File fXmlFile = new File("C:/Projekte/activity.xml");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    dbFactory.setNamespaceAware(true);
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(fXmlFile);

    XPathFactory factory = XPathFactory.newInstance();
    XPath xpath = factory.newXPath();
    javax.xml.xpath.XPathExpression expr 
     = xpath.compile("//xmi:XMI[xmi:type ='uml:Activity']/name/text()");

    Object result = expr.evaluate(doc, XPathConstants.NODESET);
    NodeList nodes = (NodeList) result;
    for (int i = 0; i < nodes.getLength(); i++) {
        System.out.println(nodes.item(i).getNodeValue()); 
    }

【问题讨论】:

  • 请将xml作为文本文件发布
  • @Guenther - 添加了 xml 文件。现在我需要对所有类别进行分组并创建树结构。稍后我需要从中找到不同的可能路径跟踪。请帮忙

标签: java xml-parsing treeview uml activity-diagram


【解决方案1】:

Eclipse Modeling Framework (EMF) 设计用于读取 UML 模型。我给Read UML Class Diagram reading with EMF写了一个代码。你在 Enterprise Architect 中设计你的模型,所以 export as UMl model 或在 papyrus 中设计,它建立在 EMF 上

【讨论】:

    【解决方案2】:
    <?xml version="1.0" encoding="windows-1252"?>
    <xmi:XMI xmi:version="2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:StandardProfileL2="http://www.omg.org/spec/UML/20110701/StandardProfileL2.xmi">
    <xmi:Documentation exporter="Enterprise Architect" exporterVersion="6.5"/>
    <uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public">
    <packagedElement xmi:type="uml:Package"xmi:id="EAPK_263A2FE8_8346_4d1e_A851_39B9D573143D" name="Activity Model" visibility="public">
    <ownedComment xmi:type="uml:Comment" xmi:id="EAID_DDCEE555_5FD6_487c_BB82_A5F055D67309" body="Case 3: Btn_Pressed = 3">
                <annotatedElement xmi:idref="EAID_367AB5AB_2A9C_4387_B4A2_2974CE57D11E"/>
            </ownedComment>
    <packagedElement xmi:type="uml:Activity" xmi:id="EAID_A165F2B1_D71E_4c10_8EB4_745B37742C0F" name="Start CnrtLk_Main()" visibility="public" isReadOnly="false" isSingleExecution="false"/>
    <edge xmi:type="uml:ControlFlow" xmi:id="EAID_5350396C_9C67_4190_817C_9EEF1E34582C" visibility="public" source="EAID_A165F2B1_D71E_4c10_8EB4_745B37742C0F" target="EAID_6428B619_8065_4a57_99CD_8F19CFB6F136"/> 
    <packagedElement xmi:type="uml:Activity" xmi:id="EAID_6428B619_8065_4a57_99CD_8F19CFB6F136" name="Get Parameters" visibility="public" isReadOnly="false" isSingleExecution="false"/>
    <edge xmi:type="uml:ControlFlow" xmi:id="EAID_A0B50908_8ADF_4507_8033_E77D777E21DD" visibility="public" source="EAID_6428B619_8065_4a57_99CD_8F19CFB6F136" target="EAID_32296133_1810_41c5_9A4D_6D3B6F11FF52"/>
    <node xmi:type="uml:InitialNode" xmi:id="EAID_CF9A7618_F1C4_4395_94D5_D2F483A51119" name="System_Initial" visibility="public">
      <outgoing xmi:idref="EAID_2785D6B4_D4DF_442f_AF8B_657D85367743"/>
    </node>
    <node xmi:type="uml:ActivityFinalNode" xmi:id="EAID_D2EB427B_3AFD_4700_BD72_13B36684E595" name="ActivityFinal" visibility="public">
                    <incoming xmi:idref="EAID_E036A3F5_4C88_4471_9C2F_031554144E9E"/>
                    <incoming xmi:idref="EAID_D62F8934_F4E6_4b00_A35B_E1149E4C06E6"/>
                    <incoming xmi:idref="EAID_CC1E7F54_9C97_4aec_AE53_55AD4DA43408"/>
                    <incoming xmi:idref="EAID_ADD5D207_728A_4aeb_80EB_F9542CF6ED80"/>
                    <incoming xmi:idref="EAID_873CF8C4_0192_4099_8F66_6B36FA760AB6"/>
                    <incoming xmi:idref="EAID_6B8D52FB_C522_4bda_BE10_B5080F9F0B0D"/>
                    <incoming xmi:idref="EAID_417A863C_D59C_4c5e_8F38_60B1DC36B077"/>
    </node>
    <node xmi:type="uml:DecisionNode" xmi:id="EAID_0D85B784_4393_429e_9BA1_7983BD7891CA" name="decision1" visibility="public">
                    <incoming xmi:idref="EAID_1FAD9B0B_04ED_4f6a_B359_8755C3A3CA03"/>
                    <outgoing xmi:idref="EAID_32A43FB9_D99D_4c3c_8382_D899FD995BA7"/>
                    <outgoing xmi:idref="EAID_2FECE2AE_6CA0_48a4_82AE_D743D257F37C"/>
    </node>
      </packagedElement>
    </packagedElement>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多