Java

Java XML nillable

승모근뭉치 2023. 1. 16. 20:24

프로젝트 내 test05.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<!-- 글로벌 엘리먼트 선언, 참조, 로컬엘리먼트 선언방법
    글로벌 엘리먼트 schema 다음에 나오는 엘리먼트,
    처음에 xsd 파일을 생성하고 Design 탭에 스키마를 더블클릭해서 접두어를
    xs에서 xsd로 바꾼다. -->
    <xsd:element name="도서리스트"><!-- 루트엘리먼트 하나의 글로벌엘리먼트도됨 -->
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="책" maxOccurs="unbounded">
                    <!-- 책이라는 엘리먼트에서 또 다시 자식엘리먼트를가질수있기때문에
                    여기서 안에다가 또 complexType 을 준다 -->
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="제목" type="xsd:string"/>
                            <!-- 이미지는 데이타가 바이너리데이타고 하나만있을수있다.이미지라는 엘리먼트를 설정.
                                이미지 같은 경우 하나의 값만 데이타값이 있는게 아니라 bin element 형태가 
                                되겠죠. 이 타입에는 경로가 들어가야합니다. 해당이미지가있는경로설정해야 -->
                            <!-- nill은 널값 데이타가 널상태임을 알려주는 그런 형태임. 네임스페이스에 있는 nill속성은 컴퓨터 데이타가 널상태에있음을 알려주는속성이다. -->
                            <!-- 데이터가 null 상태임을 표현하는 방법 이제 이 xsd을이용해 XML 파일을 만들자 -->
                            <xsd:element name="이미지" type="xsd:anyURI" nillable="true"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

프로젝트 내 sch_test051.xml

<?xml version="1.0" encoding="UTF-8"?>
<도서리스트 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="file:/D:/javaddazua/test/test05.xsd">
    <책>
        <제목> JAVA 개발자</제목>
        <이미지>http://www.xml.co.kr/image/book1.jpg</이미지>
    </책>
    <책>
        <제목>삼국지</제목>
        <이미지 xsi:nil = "true"/>
    </책>
</도서리스트>
<!-- 이 처음에 나오는 템플릿은 편리한데 test05.xsd 밑에 Design 탭에서
제목바같은곳에 schema를 마우스 오른쪽클릭해서 generate sample XML files
를 해서 파일 이름 접두어를 sch_test05로 하면 책태그와 그관련태그가 출력된다. -->