Java XML namespace

2023. 1. 16. 12:28Java

프로젝트 내 namespace01.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 1. 네임스페이스사용위해서는 네임스페이스 이름을 알고 계셔야 할텐데 
고객정보, 상품정보, 주문정보 이러한 정보를 하나의 XML문서를 고객에 대한
정보를 나타낸다는 의미로 customer mark up language를 얘기한다.
새로운 마크업 언어는 네임스페이스를 가지고 있다고합다.
    CML 네임스페이스 이름 : http://www.cml.co.kr/2000/customerML
    위가 네임스페이스이름이라가정한다.
    2000->작성년도만든년도
    PML 네임스페이스 이름 : http://www.pml.co.kr/2002/productML
    OML 네임스페이스 이름 : http://www.oml.co.kr/2001/orderML
-->

<!-- 요상태에서 XML문서 작성하기 주문내역에 접두어 고객을 이용해 네임스페이스를
선언한다.-->
<!-- 그렇다면 고객 정보가 필요하다. 보다시피 고객에 대한 네임스페이스가있어서
접두어 적는다. -->
<!--
<주문내역 xmlns:주문 = "http://www.oml.co.kr/2001/orderML"
        xmlns:고객 = "http://www.cml.co.kr/2000/customerML"
        xmlns:상품 = "http://www.pml.co.kr/2002/productML">
    <주문:주문수량>10</주문:주문수량>
    <주문:전체금액>10000</주문:전체금액>
    <고객:정보>
        <고객:번호>100</고객:번호>
        <고객:이름>김말똥</고객:이름>
    </고객:정보>
    <상품:정보>
        <상품:번호>200</상품:번호>
        <상품:이름>컴퓨터</상품:이름>
    </상품:정보>
</주문내역>
-->
<!-- XML 발리데이트 누르면 오류 : 태그들에 대해서 Document Type Definition을
참조해서 보는 그런 형식이 없기 때문이다. 엘레먼트들을 사용하기 위해서는 보통 해당
엘리먼트에 대한 정의(설계)되는 부분이필요하다.근데 그러한 것들이 없다. 스키마를 더씀.
네임스페이스를 선언하는 주문내역같은 것 역시 네임스페이스를 선언할 수 있다. 같이 그
엘리먼트안에다 적용해서 사용
여기서 주요한 정보는 주문마크업언어가 된다. 여기서 주된 마크업언어는 오더ML입니다.
따라서 이경우에는 오더 ML은 생략하고 나머지 마크업언어는 사용해도 괜찮다.
엘리먼트충돌이 나느 부분은 고객과상품에관련된것이다. 혼용되는경우 필요한 경우 접두사를
이용하고 그렇지않으면생략해서 디폴트사용할수있다.
-->

<!-- 실제 접두사 필요한 고객과 상품정보 이 두개의 엘리먼트를 제외한 나머지는
이렇게 주문접두사를 빼서(생략해서) 사용한다.-->
<주문내역 xmlns = "http://www.oml.co.kr/2001/orderML"
    xmlns:고객 = "http://www.cml.co.kr/2000/customerML"
    xmlns:상품 = "http://www.pml.co.kr/2002/productML">
    
    <주문수량>10</주문수량>
    <전체금액>10000</전체금액>
    
    <고객:정보>
        <고객:번호>100</고객:번호>
        <고객:이름>김말똥</고객:이름>
    </고객:정보>
    
    <상품:정보>
        <상품:번호>200</상품:번호>
        <상품:이름>컴퓨터</상품:이름>
    </상품:정보>
</주문내역>

상기 파일을 Validate 하면

There is no schema or DTD associated with the document. You can create an association either with the Associate Schema action or configuring in the Options the Preferences/Document Type Association list, or by creating a Validation Scenario.

위와 같이 오류가 뜬다

Document Type Definition 참조가 없기 때문이다

'Java' 카테고리의 다른 글

Java XML default namespace 사용 영역 해지  (1) 2023.01.16
Java XML xmlns:접두어  (0) 2023.01.16
Java XML - .dtd 파일 내에 적는 내부 파라미터  (0) 2023.01.16
Java XML - Author 탭  (0) 2023.01.16
Java XML entity 종류  (0) 2023.01.16