본문 바로가기
XML

[본문스크랩] 1.3 XML Well-Formed

by 사우람 2010. 7. 12.

1. well-Formed 문서라고 말하는 것은 문서가 XML 규약에 정의 되어 있는 well-formness

   제약 조건을 모두 준수한다는 것 이다. 스펙에는 [wfc:..]로 표시 된다.

   이런한 조건들은 문법에 관한 것이나 구조에 관한 것일 수 있지만 문서의 컨텐츠와는

   상관이 없다.

   well-fromed 조건은 XML문서의 가장 기본적인 제약 조건이므로 이 조건을 맞지 않는다면

   XML문서가 아니라고 말할 수도 있다

 

   1) 문법 규정

      

       ① 문서에는 오직 하나의 최상위 엘리먼트가 있어야 하고 다른 모든 엘리먼트들은

           여기에 속해야 한다.

          

       ② 모든 태그들은 적절한 방법을 통해 중첩될 수 있다.

 

       ③ 모든 태그들은 적절한 방법에 따라 끝나야 하며 비어있는 엘리먼트일 경우

           적절한 포멧을 따라야 한다.

 

       ④ XML은 대소문자 구별에 민감하다. <name>태그와 <Name>태그는 같지 않다.

 

       ⑤ 공백문자는 보존되며 애플리케이션에 전달될때 생략되지 않는다.

      

       ⑥ 위의 문법검사는 브라우져나 애플리케이션의 XML프로세서에 의해 일어나며

           well-formed 조건을 만족하지 못하면 에러를 발생시킨다.

           well-formed문서가 되지 못한 XML문서는 로드되지 않으며 사용할 수 없다.

 

  

    2) 구조 규정

        XML 문서는 프롤로그, 루트 엘리먼트, 기타 부분으로 나누어 진다.

       

        ① 프롤로그

            프롤로그는 XML 선언과 DTD 부분으로 나누어 지며 둘다 선택적인 사항이다.

            선언 부분에서 문자 인코딩을 지정할 수 있으면 기본값은 UTF-8이나 UTF-16 이다.

 

        ② 루트 엘리먼트

            XML의 시작 엘리먼트로 문서에 단 한번만 나와야 하며 모든 컨탠츠는 여기 포함

            되어야 한다.

 

        ③ 기타

             루트 원소 다음에 나오는 부분으로 주석,프로세싱 명령어, 공백문자들의 조합이 올

             수 있다.  

   

   3) 엘리먼트

      

        ①  엘리먼트 이름

             글자, 숫자, 하이픈(-), 언더스코어(_), 피어리어드(.), 콜론(:)

             들이 조합될 수 있으며 글자, 언더스코어, 콜론으로 시작해야 한다.

 

        ② 엘리먼트의 컨탠츠

            문자DATA, 레퍼런스, CDATA 섹션, 프로세싱 명령어(PI), 주석(PI) 등으로 이루어져 있다.

           

            - 문자DATA : 어떠한 마크없도 포함하지 않는 순수 TEXT.

       

            - CDATA 섹션: well-formed 규정을 위반한 것으로 간주될 DATA를 컨탠츠로 포함

                                 할대 사용된다.

                                 <![CDATA[ text ]]>

 

           - 레퍼런스: XML 도큐먼트에서 사용될 수 있는 무언가에 대한 참조나 대체.

                 

                 문자레퍼런스: 키보드를 통해서 입력하기 까다로운 유니코드 문자들을

                                     10진수(&#10진수), 16진수(&#x16진수)로 표현한다.

                  ex) &#32; &#x20; 스페이스(공백), &#163; &#xA3; 영국 파운드(₤)

 

                  엔터티 레퍼런스: 미리 정의되어있는 엔터티 레퍼런스를  참조한다.

                  ex) &amp; & , &lt; < , &gt; > , &apos; ', &quot; "

                  엔터티 레퍼런스는 위의 5개가 다이며 다른 엔터티 레퍼런스를 사용하려며

                  DTD를 통해서 정의해야 한다.

       

          ③ 주석

              주석은 XML문서 어디에도 올 수 있으며 "<!-- -->" 형식으로 이루어 지다.

 

          ④ 프로세싱 명령어(PI)

              XML 문서 외부에 있는 소프트웨어의 함수를 호출하기 위해 사용한다.

            

             <?target text?>

              target : XML을 제외하고 무엇이든 올 수 있다.

              text:

 

             

              

          

        ③ 어트리뷰트

            엘리먼트의 특성을 제공하기 위해 사용된다.

           어트리뷰트 값은 쌍따움표로 둘러싸여야하며 "<"나 "&"문자를 제외한 어떠한 문자

           도 가능하다. 한 어트리뷰트는 오직 한번만 나올 수 있다.