DTD 외에도 XML Schema Definition 으로 데이터 타입을 정의할 수 있다.
XSD 확장자로 선언된다.
현업이든 다양한 예시 파일이든, 주로 DTD 보다는 XSD 방식으로 선언하는데,
DTD 방식에는 치명적인 단점이 몇 존재하기 때문이다.
- 제한된 타입만 지원 (#PCDATA, #CDATA 등)
- 네임스페이스 미지원
- XML 문법이 아닌 별도의 DTD 문법을 사용해야 함.
- 재사용 및 확장이 불가능.
딱 이 정도 단점을 보완한 것이 XSD 방식이다.
- 정수, 문자열 등 다양한 타입을 지원
- 네임스페이스 지원
- XML 문법을 사용
- 재사용 및 확장이 가능
구체적인 예시는 다음을 보자.
<!-- League.xsd -->
<xs:element name="league">
<xs:complexType>
<xs:sequence>
<xs:element name="position" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
알아볼 용어가 좀 많다. 역시 다양한 기능을 지원할수록 문법이 복잡해지는 것은 어쩔 수 없나 보다...
간단하게 알아보자.
xs는 xml schema의 축약어다.
complexType은 data type을 여럿 보유했다는 의미다.
sequence는 배열을 뜻한다.
element는 xml element를 뜻하며, name은 식별자, type은 여러 언어에서 사용하는 그 언어 타입을 뜻한다.
여기서 XML 문서에 적용하는 방법까지 알아보기에는,
DTD 양식과는 다르게 알아야만 할 것이 참 많다.
실제로도 엄청나게 많이 볼 양식이므로 (적어도 스프링을 사용한다면 그렇다) 다음 편에서 세부적인 내용을 알아보자.
이 편에서는 XML Schema가 무엇이고, 타입은 어떻게 선언하는지.
확장자가 xsd이며 왜 dtd 대신 사용하는지.
그 정도만 알면 충분하다.
'Back > XML' 카테고리의 다른 글
XML 간단하게 알아보기 - 5 (DTD) (0) | 2022.10.02 |
---|---|
XML 간단하게 알아보기 - 외전 (XPath) (0) | 2022.10.02 |
XML 간단하게 알아보기 - 4 (네임스페이스) (0) | 2022.10.02 |
XML 간단하게 알아보기 - 3 (규칙) (0) | 2022.10.02 |
XML 간단하게 알아보기 - 2 (구조) (0) | 2022.10.02 |