수색…


비고

XML은 계층 적 데이터를 텍스트 파일에 저장하는 데 사용되는 마크 업 언어입니다. JSON과 같이 반 구조화 된 데이터라고도합니다. XML은 기계로 읽을 수 있지만 사람이 읽고 작성할 수도 있습니다.

XML은 요소들로 구성되며 때로는 자연스럽게 태그 수프 라고도 불리며 그 자체로 다른 요소 및 / 또는 텍스트를 포함 할 수 있습니다. 요소에는 속성이 포함될 수도 있습니다.

XML은 플랫폼 간, 특히 인터넷을 통한 데이터 교환에 자주 사용됩니다. 또한 반 구조화 된 데이터를 NoSQL 데이터 저장소 (XML 데이터베이스 / 문서 저장소)에 저장하는 데 점점 더 많이 사용되고 있습니다. 또한, 문서 지향 데이터 (마크 업이있는 텍스트)를 처리 할 수있는 유연성이있어서 출판 업계에서 매우 인기가 있습니다. XML은 구성 파일에도 널리 사용됩니다.

XML이 널리 사용되는 주된 이유 중 하나는 오픈 소스를 포함하여 많은 파서를 사용할 수있는 표준화가 이루어 졌다는 점입니다. 따라서 XML을 사용하는 비용은 자신의 새로운 구문을 발명 한 것보다 낮아집니다.

XML의 근원과 목표에 관한 더 많은 정보는 공식 W3C 권고안 에서 찾을 수있다.

아래 표에는 XML의 두 가지 버전이 나와 있습니다. 각 버전의 버전은 원본 문서의 개정이며 표준의 변경은 아닙니다.

XML의 첫 번째 버전은 1.0 입니다. XML 1.1 은 유니 코드 버전이 2.0에서 3.1로 변경되어 주요 변경되었으며 새로운 유니 코드 문자의 사용 및 해석에 대한 새로운 규칙 집합을 지정합니다.

버전

번역 출시일
1.0 1998-02-10
1.1 2001-12-13

설치 또는 설정

XML은 간단한 텍스트 편집기로 시작할 수있는 구문입니다.

그러나 XML 형식의 편집기를 사용하면 문서의 형식이 올바르지 않은시기와 위치를 생산성에 거의 필수적으로 표시 할 수 있습니다. 이러한 편집기를 사용하면 XML 스키마를 기준으로 XML 문서의 유효성을 검사하거나 XML 문서에서 XML 스키마를 생성 할 수도 있습니다 (그 반대의 경우도 가능).

편집자의 예로는 oXygen, Atom, Eclipse 및 Altova XMLSpy가 있습니다. 또 다른 해결책은 Apache Xerces와 같은 명령 행 XML 구문 분석기를 사용하는 것입니다.

기본 빌딩 블록

XML은 다음과 같은 기본 빌딩 블록으로 구성됩니다.

  • 요소
  • 본문
  • 속성들
  • 코멘트
  • 처리 명령

요소에는 꺾쇠 괄호가 있습니다.

<element/>

<element>some content</element>

애트리뷰트는 시작 요소 태그에 나타납니다.

<element
  attribute-name="attribute value"
  other-attribute='single-quoted value'>
  ...
</element>

텍스트는 요소 내부 또는 요소 사이에 나타날 수 있습니다.

<element>some more <b>bold</b> text</element>

주석은 다음 구문을 사용합니다. XML 주석은 프로그래밍 언어와 달리 모델의 일부이며 파서 위의 응용 프로그램에서 볼 수 있다는 것을 알아야합니다.

<!-- this is a comment -->

처리 명령은 메시지를 소모 응용 프로그램 (예 : 표시 방법 또는 스타일 시트 등)으로 전달할 수있게합니다. XML은 처리 명령어 형식을 제한하지 않습니다.

<?target-application these are some instructions?>

이 항목에서 빌딩 블록에 대한 자세한 내용을 확인할 수 있습니다.

잘 형성됨

XML 문서는 XML 사양의 올바른 형식 규칙을 준수하는 텍스트 파일입니다. 이러한 준수 문서는 올바른 형식 이라고 할 수 있습니다 ( 유효한 것으로 혼동하지 말 것). XML은 HTML과 같은 다른 언어와 비교하여 올바른 형식으로 매우 엄격합니다. 형식이 올바르지 않은 텍스트 파일은 XML로 간주되지 않으므로 응용 프로그램을 전혀 사용하지 않아도 사용할 수 없습니다.

다음은 XML 문서에 적용되는 몇 가지 규칙입니다.

  1. XML은 많은 자체 설명 구문을 사용합니다. 프롤로그는 XML 버전 및 문자 인코딩을 정의합니다.

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. 정확히 한 개의 최상위 요소가 있어야합니다.

    그러나 주석, 처리 지침 및 초기 XML 선언은 최상위 레벨에서도 허용됩니다. 텍스트와 속성은 그렇지 않습니다.

    <?xml version="1.0"?>
    <!-- some comments -->
    <?app a processing instruction?>
    <root/>
    <!-- some more comments -->
    
  3. 요소는 중첩 될 수 있지만 "적절하게 중첩"되어야합니다.

    <name>
      <first-name>John</first-name>
      <last-name>Doe</last-name>
    </name>
    

    삽입 된 요소의 시작 및 끝 태그는 해당 컨테이너 요소의 시작 및 끝 태그 내에 있어야합니다. 요소의 중첩은 불법입니다. 특히 이것은 잘 구성된 XML이 아닙니다 : <foo><bar></foo></bar>

  4. 속성은 닫는 요소 태그가 아닌 여는 요소 태그 또는 빈 요소 태그에만 나타날 수 있습니다. 요소 사이에 속성 구문이 있으면 의미가 없으며 텍스트로 구문 분석됩니다.

    <person first-name="John" last-name="Doe"/>
    

    이것은 잘 형성되지 않았습니다 : <person></person first-name="John"/>

  5. 주석, 처리 명령, 텍스트 및 추가 요소는 태그 내부가 아닌 요소 내부 (즉, 시작 태그와 닫기 태그 사이)에 나타날 수 있습니다.

    <element>
        This is some <b>bold</b> text.
        <!-- the b tag has no particular meaning in XML -->
    </element>
    

    이 예제는 형식이 올바르지 않습니다. <element <-- comment --> />

  6. < 문자는 텍스트 나 속성 값에 표시되지 않을 수 있습니다.

  7. " 문자는 따옴표로 묶인 속성 값에 표시되지 않을 수 있습니다. " ' 문자는 따옴표로 묶인 속성 값에 표시되지 않을 수 있습니다. '

  8. 문자의 순서는 -- 코멘트에 나타나지 않을 수 있습니다.

  9. 리터럴 <& 문자는 각각의 엔티티에 의해 이스케이프되어야합니다 &lt; &amp; .

안녕하세요 세계

<?xml version="1.0"?>
<?speech-generator voice="Siri"?>
<root xmlns:vocabulary="http://www.example.com/vocabulary">
  <!-- These are the standard greetings -->
  <vocabulary:greetings>
    <vocabulary:greeting xml:lang="en-US" type="informal">
      Hi!
    </vocabulary:greeting> 
    <vocabulary:greeting xml:lang="en-US" type="intermediate">
      Hello!
    </vocabulary:greeting> 
    <vocabulary:greeting xml:lang="en-US" type="formal">
      Good morning to <b>you</b>!
    </vocabulary:greeting> 
  </vocabulary:greetings>
</root>

네임 스페이스

요소 및 속성 이름은 URI 인 네임 스페이스에 있습니다. 네임 스페이스는 QNames라고하는 실제 요소 및 특성 이름에 사용되는 접두사에 바인딩됩니다.

이 문서는 네임 스페이스를 접두어 prefix 에 바인딩하고 접두어가없는 기본 네임 스페이스를 정의합니다.

<?xml version="1.0"?>
<document
    xmlns="http://www.example.com/default-namespace"
    xmlns:prefix="http://www.example.com/another-namespace">
  <prefix:element/>
</document>

이 항목에서 네임 스페이스에 대한 자세한 내용을 확인할 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow