UML 모델의 값에 대한 XSD 제한사항 추가

UML 모델에서 단순 또는 복합 유형에 대한 제한사항을 추가한 후, UML에서 XSD로 변환을 실행하여 정규식에 지정되는 패턴과 일치하도록 가능한 값을 제한하여 단순 또는 복합 유형을 포함한 XML 스키마를 생성할 수 있습니다. 또한 제한사항이 있는 유형이 포함된 XSD 스키마에 대해 XSD에서 UML로 변환을 실행하여 모델에서 요소를 생성할 수도 있습니다.
시작하기 전에
XSD 변환 프로파일을 사용자 모델에 적용해야 하며, 사용자 모델에는 «schema» 스테레오타입이 있는 패키지가 있어야 합니다.
이 태스크 정보
모델의 소스 클래스는 각각 다른 단순 또는 복합 유형에 대한 일반화 관계를 가지고 있는 단순 또는 복합 유형이 될 수 있습니다. 소스 모델에 대해 UML에서 XSD로 변환을 실행할 때 단순 유형 사이의 일반화에 스테레오타입이 없는 경우 XML 스키마에서 XSD 제한사항으로 계속 생성됩니다. 단순 유형은 하위 요소로 확장을 보유할 수 없기 때문입니다. 복합 유형 사이의 일반화에 스테레오타입이 없는 경우 XML 스키마에서 XSD 확장으로 생성됩니다. 동일한 일반화에 «restriction» 스테레오타입이 있는 경우 XSD 제한사항으로 생성됩니다.

XML 스키마에 대해 XSD에서 UML로 변환을 실행할 때 XSD 제한사항은 동일 종류의 다른 유형에 대해 일반화 관계를 가지고 있는 단순 또는 복합 유형을 생성합니다. 일반화 관계는 «restriction» 스테레오타입으로 생성됩니다.

Package1 패키지에서 Class1 유형을 제한하려면 다음을 수행하십시오.

  1. 프로젝트 탐색기 보기에서 스키마 패키지에 클래스를 추가한 후 «simpleType» 또는 «complexType» 스테레오타입을 클래스에 적용하십시오. 예를 들어, Class1 클래스를 스키마 패키지에 추가하십시오.
  2. Class1에 대한 UML 특성을 편집하여 일반화 관계를 작성하십시오.
    1. Class1을 마우스 오른쪽 단추로 클릭한 후 UML 특성을 클릭하십시오.
    2. 일반화를 클릭하십시오.
    3. 특성 창의 오른쪽 상단 구석에서 새 일반화 삽입(화살표 아이콘이 있는 단추로 표시됨)을 클릭하십시오.
    4. 요소 선택 창에서 모델을 찾아보고 모델 요소를 펼친 후 (XSDDataTypes) > XSDDataTypes을 펼치십시오.
    5. 데이터 유형을 선택하십시오. 예를 들어, string을 선택하십시오.
    6. 확인을 클릭하십시오.
    7. 닫기를 클릭하십시오.

    다음 그림은 배경에 특성 창을 표시하고 전경에 요소 선택 창을 표시합니다. 이 창은 일반화 관계를 작성하기 위해 열린 창입니다.

    화면 캡처는 배경에 특성 창을 표시합니다. 전경에는 요소 선택 창이 열려 있고
프로젝트 트리는 XSDDataType을 표시하기 위해 펼쳐집니다.

  3. 프로젝트 탐색기 보기에서 Class1 클래스를 펼치고 새 일반화 관계를 선택하십시오.
  4. 특성 보기에서 스테레오타입 탭을 클릭한 후 스테레오타입 적용을 클릭하고 제한사항을 선택하십시오. 다음 그림은 작성된 새 모델 요소의 다이어그램 보기를 보여 줍니다.

    화면 캡처는 문자열 유형에 대해 일반화 관계 스테레오타입화된 제한사항이
있는 Class1 스테레오타입화된 simpleType의 다이어그램 보기를
보여 줍니다.

  5. Class1 클래스를 선택한 후 특성 보기에서 스테레오타입 탭을 클릭하십시오.
  6. 스테레오타입 특성 섹션에서 패턴 특성을 선택하고 제한사항을 정의할 값을 입력하십시오. 예를 들어, 다음 그림에 표시된 대로 [0-9]{5}(-[0-9]{4})?를 패턴의 값으로 입력하십시오.

    화면 캡처는 스테레오타입 탭이 선택된 특성을 표시하며
패턴 특성이 강조표시됩니다.

소스로 Package1을 사용하여 UML에서 XSD로 변환을 구성 및 실행하면, 예제 모델은 다음 XML 코드와 유사한 XML 스키마를 생성합니다.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:Package1="http://Package1/" targetNamespace="http://Package1/">
  <xsd:simpleType name="Class1">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{5}(-[0-9]{4})?"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

피드백