모든 사용자 정의 simple type은 다른 simple type들의 restriction 아니면 list이다.[1]
반대로 complexType은 애트리뷰트 또는 엘리먼트 (또는 둘 다)를 반드시 가져야 한다.
Simple Content와 Complext Content는 Complex Type의 content가 어떠한지를 가리키는 말이다. 따라서 이들은 simpleType과는 아무 관계가 없다.
[1]
- 보충: Visual studio에서 xsd 파일을 편집해 보면, <simpleType>에서 선택할 수 있는 것은 restriction, list, union이다.
- 이 중 restriction은 기존에 있던 type을 제한해서 만든다. 제한하기 전의 원본은 XML built-in type일 수도 있고 사용자가 정의한 다른 simpleType일 수도 있다. 전형적인 예는 xsd:string을 제한해서 문자열의 enumeration을 만드는 것이다(주관식을 객관식으로 만드는 것)
- list는, "whitespace-separated" list이다. 즉 list이긴 list이되, 구분자가 고작 공백문자 하나이기 때문에 원소 속에 공백문자가 있어서는 안 된다. 따라서 complexType은 원소가 될 수 없고, simpleType만을 원소로 가질 수 있다.
- union은 C의 공용체와 마찬가지로 여렷 중 하나를 고를 수 있는 것이다. 애트리뷰트 memberTypes에다 whitespace-separated list로 타입 목록을 넣으면 된다.
No comments:
Post a Comment