XScript 란?

XScript는 eXERD 파일에 대해 사용자가 직접 다이어그램, 테이블, 컬럼 등을 찾거나 수정할 수 있도록 도와주는 언어입니다.

기본 전략

XScript는 대부분의 동작이 다음과 같은 두 과정을 갖는다고 가정하고 설계되었습니다:
  1. 주어 선택: 조작할 모델들을 선택
  2. 동사 기술: 선택된 모델들에 대해 동작을 기술

주어의 선택

주어를 선택할 때는 select() 문을 이용하며, 인자로 클로져가 전달됩니다. 클로져는 하나의 인자를 갖고 true 또는 false 를 리턴하는 function 형태이어야 합니다. 이 클로져의 구조는 다음과 같습니다:
function(it){
	return true 또는 false;
}
eXERD 문서를 구성하는 모든 모델은 각각 클로져의 인자인 it 으로 전달 되어 클로져가 true 를 리턴하면 그 모델이 선택됩니다. 예를 들어 모든 컬럼을 선택하는 방법은 다음과 같습니다:
select(function(it){
	return it.get("type") == "column";
})
위의 코드는 type 속성이 "column" 인 모든 모델을 선택하게 됩니다. 이렇게 모델 선택함수 select(조건함수())를 이용해 선택된 모델들을 모델 컨텍스트 라고 합니다.
클로져의 인자로 it 이 사용되는 것은 권장 사항일 뿐 강제 사항은 아닙니다. 원하는 다른 변수명을 사용하셔도 무방합니다.

동사의 기술

작업을 수행할 모델들을 선택했다면, 이제 동작을 기술해 봅시다. 모든 컬럼의 이름을 화면에 출력하는 간단한 예제로 시작하겠습니다:
select(function(it){
	return it.get("type") == "column";
}).each(function(it){
	log(it.get("logical-name"));
});

each(클로져) 함수는 모델 컨텍스트에 속한 모든 요소들이 주어진 클로져 동작을 차례로 수행하게 합니다. (비지터 패턴을 연상하면 이해가 쉽습니다.)