XML 튜토리얼

XML 홈 XML 소개 XML 사용 방법 XML 트리 XML 구문 XML 요소 XML 속성 XML 네임스페이스 XML 표시 XML HttpRequest XML 파서 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 유효성 검사기 XML DTD XML 스키마 XML 서버 XML 예제 XML 퀴즈 XML 인증서

XML AJAX

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

XML DOM

DOM 소개 DOM 노드 DOM 액세스 DOM 노드 정보 DOM 노드 목록 DOM 순회 DOM 탐색 DOM 값 가져오기 DOM 변경 노드 DOM 제거 노드 DOM 교체 노드 DOM 생성 노드 DOM 추가 노드 DOM 복제 노드 DOM 예제

XPath 튜토리얼

XPath 소개 XPath 노드 XPath 구문 XPath 축 XPath 연산자 XPath 예제

XSLT 튜토리얼

XSLT 소개 XSL 언어 XSLT 변환 XSLT <템플릿> XSLT <값> XSLT <각각> XSLT <정렬> XSLT <만약> XSLT <선택> XSLT 적용 클라이언트의 XSLT 서버의 XSLT XSLT XML 편집 XSLT 예

XQuery 튜토리얼

XQuery 소개 XQuery 예제 XQuery FLWOR 엑스쿼리 HTML XQuery 용어 XQuery 구문 XQuery 추가 XQuery 선택 XQuery 함수

XML DTD

DTD 소개 DTD 빌딩 블록 DTD 요소 DTD 속성 DTD 요소 대 속성 DTD 엔터티 DTD 예

XSD 스키마

XSD 소개 XSD 방법 XSD <스키마> XSD 요소 XSD 속성 XSD 제한 사항

XSD 컴플렉스

XSD 요소 XSD 비어 있음 XSD 요소만 XSD 텍스트만 XSD 혼합 XSD 지표 XSD <모든> XSD <모든 속성> XSD 대체 XSD 예

XSD 데이터

XSD 문자열 XSD 날짜 XSD 숫자 XSD 기타 XSD 참조

서비스

XML 서비스 XML WSDL XML SOAP XML RDF XML RSS

참고문헌

DOM 노드 유형 DOM 노드 DOM 노드 목록 DOM NamedNodeMap DOM 문서 DOM 요소 DOM 속성 DOM 텍스트 DOM CDATA DOM 주석 DOM XMLHttpRequest DOM 파서 XSLT 요소 XSLT/XPath 함수

XML 요소속성


XML에는 언제 속성을 사용하고 언제 자식 요소를 사용해야 하는지에 대한 규칙이 없습니다.


요소와 속성의 사용

데이터는 자식 요소나 속성에 저장할 수 있습니다.

다음 예를 살펴보십시오.

<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

첫 번째 예에서 성별은 속성입니다. 마지막으로 섹스는 자식 요소입니다. 두 예 모두 동일한 정보를 제공합니다.

속성을 사용하는 시기와 자식 요소를 사용해야 하는 시기에 대한 규칙은 없습니다. 내 경험에 따르면 속성은 HTML에서 편리하지만 XML에서는 속성을 피해야 합니다. 정보가 데이터처럼 느껴진다면 자식 요소를 사용하세요.


내가 가장 좋아하는 방법

나는 자식 요소에 데이터를 저장하는 것을 좋아합니다.

다음 세 개의 XML 문서에는 정확히 동일한 정보가 포함되어 있습니다.

날짜 속성은 첫 번째 예에서 사용됩니다.

<note date="12/11/2002">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

날짜 요소는 두 번째 예에서 사용됩니다.

<note>
  <date>12/11/2002</date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

확장된 날짜 요소는 세 번째에서 사용됩니다. (THIS IS MY FAVORITE):

<note>
  <date>
    <day>12</day>
    <month>11</month>
    <year>2002</year>
  </date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>


속성 사용을 피하시겠습니까?

속성 사용을 피해야 합니까?

속성과 관련된 몇 가지 문제는 다음과 같습니다.

  • 속성은 여러 값을 포함할 수 없습니다(하위 요소는 가능).
  • 속성을 쉽게 확장할 수 없음(향후 변경 사항에 대해)
  • 속성은 구조를 설명할 수 없습니다(하위 요소는 가능).
  • 속성은 프로그램 코드로 조작하기가 더 어렵습니다.
  • 속성 값은 DTD에 대해 테스트하기 쉽지 않습니다.

속성을 데이터의 컨테이너로 사용하면 읽고 유지하기 어려운 문서가 됩니다. 요소 를 사용 하여 데이터를 설명하십시오. 속성을 사용하여 데이터와 관련이 없는 정보를 제공하십시오.

다음과 같이 끝내지 마십시오(이것은 XML을 사용하는 방식이 아닙니다).

<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

내 속성 규칙에 대한 예외

규칙에는 항상 예외가 있습니다.

속성에 대한 내 규칙에는 한 가지 예외가 있습니다.

때로는 요소에 ID 참조를 할당합니다. 이러한 ID 참조는 HTML의 NAME 또는 ID 속성과 거의 동일한 방식으로 XML 요소에 액세스하는 데 사용할 수 있습니다. 이 예에서는 다음을 보여줍니다.

<messages>
<note id="p501">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

<note id="p502">
  <to>Jani</to>
  <from>Tove</from>
  <heading>Re: Reminder</heading>
  <body>I will not!</body>
</note>
</messages>

이 예에서 ID는 메모 데이터의 일부가 아니라 XML 파일의 다른 메모를 식별하기 위한 카운터 또는 고유 식별자일 뿐입니다.

여기서 말하려는 것은 메타데이터(데이터에 대한 데이터)는 속성으로 저장되어야 하고 데이터 자체는 요소로 저장되어야 한다는 것입니다.