요소
요소는 XML 문서의 백본을 형성하고 프로그램이나 스타일시트로 조작할 수 있는 구조를 만듭니다. 요소는 요소 이름, 시작 및 끝을 식별하는 태그를 사용하여 빌드할 수 있으며 명명된 정보 섹션을 식별합니다.
요소에는 내용에 대한 추가 정보를 제공하는 특성 이름과 값이 포함될 수 있습니다. 자세한 내용은 특성을 참조하십시오.
요소 이름
모든 요소에는 이름이 있어야 합니다. 요소 이름은 대/소문자를 구분하며 문자나 밑줄로 시작해야 합니다. 요소 이름에는 문자, 숫자, 하이픈, 밑줄 및 마침표가 포함될 수 있습니다.
![]() |
---|
콜론은 네임스페이스에 사용하도록 예약되어 있습니다.문자와 숫자로 사용할 수 있는 유니코드 문자에 대한 자세한 내용은 XML 사양의 부록 B를 참조하십시오. |
시작 태그, 끝 태그 및 빈 태그
태그는 요소의 내용이 있을 경우 이 내용 주위에 경계를 설정합니다.
시작 태그는 요소의 시작을 나타내며 다음 일반 구문을 사용합니다.
<elementName att1Name="att1Value" att2Name="att2Value"...>
특성이 없는 요소에 대해 시작 태그를 줄일 수 있습니다.
<elementName>
끝 태그는 요소의 끝을 나타내며 특성을 포함할 수 없습니다. 끝 태그는 항상 다음 형식을 사용합니다.
</elementName>
일반적으로 요소는 시작 태그와 끝 태그 및 이 태그 사이에 모든 내용을 포함하는 것으로 간주됩니다.
<person><givenName>Peter</givenName> <familyName>Kress</familyName></person>
이 경우 <person>
요소에는 <givenName>
과 <familyName>
이라는 다른 두 요소 및 이를 구분하는 공백이 포함되어 있습니다. <givenName>
요소에는 텍스트 Peter
가 포함되어 있고 <familyName>
요소에는 텍스트 Kress
가 포함되어 있습니다.
빈 태그는 특성이 있지만 텍스트 내용이 없는 요소를 나타내는 데 사용됩니다. 빈 요소의 예로는 HTML img
및 br
이 있습니다. 문서의 시작 태그와 끝 태그 사이에 내용이 없을 경우 빈 태그를 바로 가기로 사용할 수 있습니다. 빈 태그는 닫는 태그 > 앞에 슬래시(/)가 포함된 것을 제외하면 시작 태그처럼 보입니다.
<elementName att1Name="att1Value" att2Name="att2Value".../>
XML에서 <giggle></giggle>
과 같이 시작 태그와 끝 태그 사이에 공백이나 내용을 포함하지 않고 빈 요소를 나타내거나 <giggle/>
과 같이 빈 태그를 사용할 수 있습니다. 두 형식은 XML 파서에서 같은 결과를 생성합니다.
요소 관계
요소 간의 관계는 패밀리 또는 트리 메타포를 사용하여 설명합니다. XML 문서에는 하나의 루트 요소만 포함되어야 합니다. 요소 앞이나 뒤에 선언, 처리 명령, 주석, 공백 등의 다른 태그가 있을 수 있지만 루트에는 문서 자체의 일부로 간주되는 모든 내용이 포함되어야 합니다. 예를 들어, 다음 코드는 루트 요소로 <person>
이 포함된 XML 문서일 수 있습니다.
<person><givenName>Stephanie</givenName> <familyName>Bourne</familyName></person>
다음 단편은 여러 루트 요소가 있기 때문에 XML 문서가 될 수 없습니다.
<givenName>Stephanie</givenName>
<familyName>Bourne</familyName>
![]() |
---|
문서 단편은 XML 문서의 일부로 유용하게 사용될 수 있지만 그 자체로 파서에 전달되어서는 안 됩니다.파서는 요소 외부에서 두 번째 요소나 텍스트를 발견하면 오류를 보고합니다. |
트리 메타포에서 리프는 분기 끝에 있는 리프와 같이 다른 요소가 포함되지 않은 요소를 참조합니다. 일반적으로 리프 요소는 텍스트만 포함하거나 아무 것도 포함하지 않은 요소이며 리프 노드는 빈 요소 또는 텍스트입니다. 문서 구조에서 책을 설명하는 모든 텍스트는 리프 요소에 저장되며 텍스트 자체가 리프 노드입니다.
부모, 자식, 상위, 하위, 형제 등의 패밀리 메타포를 사용하여 요소 간의 상호 관계를 설명하며 전체 문서에 대한 관계를 설명할 필요는 없습니다. 다음 추상적 샘플 문서는 요소 간의 관계를 보여 줍니다.
<a>
<b>
<c>
<d/><e/><f/>
</c>
</b>
</a>
<a>
요소에 <b>
요소가 포함되어 있고 이 요소에 <c>
요소가 포함되어 있으며 이 요소에는 <d>
, <e>
및 <f>
요소가 포함되어 있습니다. 트리 메타포를 사용할 경우 루트 요소는 <a>
이며 리프 요소는 <d>
, <e>
및 <f>
입니다. <b>
및 <c>
요소는 트렁크 또는 분기로 간주될 수 있지만 이러한 표현은 거의 사용되지 않습니다.
패밀리 메타포는 보다 상세한 설명을 제공합니다. 이 문서에서 유일한 형제는 <d>
, <e>
및 <f>
요소이며 모두 <c>
요소에 포함되어 있습니다. <c>
요소는 <d>
, <e>
및 <f>
요소의 부모 요소이며 <d>
, <e>
및 <f>
요소는 <c>
요소의 자식 요소입니다. 마찬가지로 <b>
요소는 <c>
요소의 부모 요소이며 <c>
요소는 <b>
요소의 자식 요소입니다. 또한 <a>
요소는 <b>
요소의 부모 요소이고 <b>
요소는 <a>
요소의 자식 요소입니다.
상위 요소와 하위 요소는 직접 포함하거나 포함되지 않아도 된다는 점을 제외하고 부모 요소 및 자식 요소와 같은 방식으로 정의됩니다. <a>
요소는 <b>
요소의 부모 요소이며 문서에 있는 모든 요소의 상위 요소입니다. <d>
, <e>
및 <f>
요소는 <a>
, <b>
및 <c>
요소의 하위 요소입니다.