2009-09-01 3 views
0

내 응용 프로그램은 java 클래스를 생성하기 전에 ecore로 변환 된 xsd 모델베이스를 사용하고 있습니다. 팀 구성원 중 한 명이 이전 버전의 .ecore 메타 모델을 수정했습니다. 생성 된 하나의 특성입니다. 그는 xml 퍼시스턴스에 사용 된 요소 이름을 지정하는 확장 메타 데이터가 아닌 속성 이름을 수정했습니다.EMF ecore 및 xsd 동기화가 해제 되었습니까?

<eStructuralFeatures xsi:type="ecore:EReference" name="javaDocsAndUserApi" upperBound="-1" 
    eType="#//JavaDocsAndUserApi" containment="true" resolveProxies="false"> 
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> 
    <details key="kind" value="element"/> 
    <details key="name" value="docsAndUserApi"/> 
    </eAnnotations> 
</eStructuralFeatures> 

그래서 우리는 javaDocsAndUserApidocsAndUserApi라는 이름의 지속 요소이며 속성 이름이 내가 javaDocsAndUserApi을의 Ecore를 변환이됩니다 이름을 붙일 XSD의 속성을 변경 만들 경우 물론 javaDocsAndUserApi도 생성해야 이전에 유지 된 모델과의 호환성이 저하됩니다.

나는 Ecore를 찾기 위해 XSD 제작 가이드 살펴 보았다 : som_attribute 나 변환을 Ecore를 위해 XSD 동안 docsAndUserApi익명을 메타 데이터를 강제로 XSD에 사용되는 키를 지정할 수 것이나 찾을 수 없습니다 아무것도. 누구도 나를 도울 생각이 있습니까?

감사합니다.

답변

1

진화하는 (메타) 모델을 다루는 것은 쉬운 일이 아닙니다. 기본적으로 하나의 형식 (하나의 Ecore 모델 준수)에서 다른 형식 (다른 Ecore 모델 준수)으로 데이터를 마이그레이션하는 것입니다.

ATLAMW과 같은 모델 변환 기술을 적용 할 수 있습니다. 이렇게하면 두 개의 Ecore (메타) 모델 (m1 및 m2)을 연결 (직조)하고 m1 형식에서 m2 형식으로 데이터를 변환하는 코드를 자동으로 생성 할 수 있습니다. (이 주제에 대한 매우 흥미로운 연구 논문은 here을 참조하십시오.)

실용적인 접근법은 EMF를 사용하여 모델 변환을 수동으로 구현하는 것일 수 있습니다. 모델 간 변경 사항은 간단하기 때문에 구현하기가 너무 어렵지 않아야합니다.