Java XML - xsd attributeFormDefault
2023. 1. 18. 11:36ㆍJava
프로젝트 내 ns01.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.aaa.co.kr/xml"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:my="http://www.aaa.co.kr/xml"
>
<!-- 현재 작성중인 element수신,발신,제목,내용 등의 엘리먼트를
http://www.aaa.co.kr/xml 네임스페이스에 포함을 시킬건지 안시킬건지를 결정하는 방법. 퀄리파이드는 이 엘리먼트들을
포함,적용시키겠다는 내용이고, 언퀄리파이드로하겠다면 요 작성한 엘리먼트들을 네임스페이스안에 포함시키지 않겠다고한다. 일반적으로
포함시키는 편이다. attributeFormDefault의 경우에는 사용을 할때 요 속성을 지정할 때도 네임스페이스안에 포함시켜서 사용할건지
아니면 포함제외하고 사용할건지 결정하는 속성이며, 퀄리파이드라고 지정하면 네임스페이스에 설정된 접두사, 그 위에
있는 xmlns:xs에 있는 주소는 기본적 필수적으로 사용되는 네임스페이스이다. 그래서 여기있는 xs라는 접두사를 항상 사용해왔다. xs:
sequence나 xs:complexType 같은 이런 엘리먼트가 xs라는 www.w3.org/2001/XMLSchema에 포함되어있는 거라는 거죠. xs 라는
접두사때문에 그래서 xs 접두사를 붙여주죠. targetNamespace:my="http://www.aaa.co.kr/xml"
targetNamespace:my my를 넣으면 http://www.aaa.co.kr/xml 요 네임스페이스 대신에 my 라는 접두사를 사용하겠다는 거죠
수신발신제목내용등은 네임스페이스안에 속하도록 하겠다는 거니 접두사 마이를 항상 붙이게 된다. elementFormDefault를 언퀄리
파이드하면 해당 접두사를 사용하지 않고 xml을 만들겠다 는 의미다 접두사를 여러분이 지정하지 않으면 xml문서에서 자동으로
만들어 준다.
디자인 탭, 스키마 오른쪽 버튼, generate sample xml files
file name prefix로 ns01_1을 준다 인스턴스 만들기
xmlns:my="http://www.aaa.co.kr/xml" 이것을 추가한 후
새롭게 xml 인스턴스 만들기 -->
<xs:element name="쪽지">
<xs:complexType>
<xs:sequence>
<xs:element name="수신"/>
<xs:element name="발신"/>
<xs:element name="제목"/>
<xs:element name="내용"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<!-- 이 스키마를 기본으로해서 xml문서를 하나 만들죠
Design 탭 schema 오른쪽버튼 generate sample xml files, file name
prefix에 ns01로 인스턴스 파일 생성
-->
프로젝트 내 ns01_11.xml
<?xml version="1.0" encoding="UTF-8"?>
<xml1:쪽지 xmlns:xml1="http://www.aaa.co.kr/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.aaa.co.kr/xml file:/D:/javaddazua/test2/ns01.xsd">
<xml1:수신>
</xml1:수신>
<xml1:발신>
</xml1:발신>
<xml1:제목>
</xml1:제목>
<xml1:내용>
</xml1:내용>
</xml1:쪽지>
Validation successful 이라고 뜬다.
==========================
프로젝트 내 ns01_21.xml
<?xml version="1.0" encoding="UTF-8"?>
<my:쪽지 xmlns:my="http://www.aaa.co.kr/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.aaa.co.kr/xml file:/D:/javaddazua/test2/ns01.xsd">
<my:수신>
</my:수신>
<my:발신>
</my:발신>
<my:제목>
</my:제목>
<my:내용>
</my:내용>
</my:쪽지>
ns01_21.xml 도 Validate 하면 마찬가지로 Validation successful 이라고 뜬다.
'Java' 카테고리의 다른 글
Java XML - xsd에서 다형성 (0) | 2023.01.18 |
---|---|
Java XML - xsd targetNamespace (0) | 2023.01.18 |
Java XML - xsd에서 notation element (0) | 2023.01.18 |
Java XML - 유일성 논리적 오류 (0) | 2023.01.18 |
Java XML - xsd schema 문서 unique element (0) | 2023.01.18 |