2014-03-31 2 views
0

사이 잘못된 HREF 참조 제가ATL 변환 - InterModelReferences. 모델

2 개 모델
-- @nsURI WFG=http://workflowgraph/1.0.3 
-- @nsURI SYS=http://systembehavior/1.0 
-- @nsURI PEER=http://peerbehavior/1.0 

module WFG2System; 
create OUT:SYS, OUT2:PEER from IN:WFG; 

모델 SYS 어떤 객체 모델 1에서 ATL 변환을, 모델 PEER의 객체에 대한 참조를 갖는다. ATL 실행 구성에서 InterModelReferences를 확인하고 생성 될 파일의 ​​경로를 채 웁니다. 따라서 ATL은 생성 된 모델의 fileName과 경로를 알아야합니다. 변환은 작동하지만 InterModelReferences는 작동하지만 너무 좋지는 않습니다.

<systembehavior:SYS xmlns:PEER="http://peerbehavior/1.0" xmlns:SYS="http://systembehavior/1.0"> 
    <transitions xsi:type="systembehavior:Send"> 
    <source href="new-model#Participant_1"/> 
    <target href="new-model#Participant_5"/> 
    </transitions> 

대신 BE :

<systembehavior:SYS xmlns:PEER="http://peerbehavior/1.0" xmlns:SYS="http://systembehavior/1.0"> 
    <transitions xsi:type="systembehavior:Send"> 
    <source href="./mymodel.peer#Participant_1"/> 
    <target href="./mymodel.peer#Participant_5"/> 
    </transitions> 

왜하지 않은 'HREF'입력란에 대신 참조 모델의 경로, 문자열 아래처럼 "새로운 모델"이 두 번째로 제작 된 모델의 경로가 자동으로 작성 되었습니까? 내 실제 솔루션은 수동으로 텍스트 편집기 href 특성으로 변경되므로 Eclipse에서 XMI 편집기를 사용하여 모델 파일을 열 수 있으며 참조가 제대로 작동합니다.

ResourceSet resSet = new ResourceSetImpl(); 
     Resource resource = resSet.getResource(URI.createURI(PartesConf.getString("outputPath")+"sys.systembehavior"), true); 
     SystemBehavior sys = ((SystemBehavior) resource.getContents().get(0)); 
: 내가 함께 모델에서 자바 객체 SYS를 검색 할 경우

====== 편집은 또 다른 문제 (아래 용액) ======

을 발견 감사합니다

피어 모델에서 참조 된 피어가 참조 된 개체를 검색 솔루션은 자원을 검색 할 절대 경로를 사용 enter image description here

답변

0

빈 동료 (null로 모든 속성을 가진 피어)입니다. 자세한 내용은 this discussion을 참조하십시오. 참조 된 개체가 항상 Java 개체로 만들어지지는 않지만 EMF는 런타임에 참조를 해결합니다.

여전히 잘못된 href 속성의 문제가 있습니다.