수색…


비고

저장소 관점에서 볼 때 XML 문서는 엔터티로 구성됩니다. 엔티티 중 하나는 주요 XML 문서 자체 인 문서 엔티티입니다.

엔티티는 다음과 같이 분류 할 수 있습니다 (사용 순서가 내림차순으로 정렬 됨).

  • document entity : 기본 XML 파일입니다.
  • 내부 일반 엔티티 (Entity) : 문서 엔티티 외에 가장 일반적인 엔티티이며 대부분의 XML 사용자가 알고있는 것입니다. 종종 엔티티 라는 단어가 부담없이 사용됩니다. 문서 내용에서 더 긴 대체 텍스트의 일부 바로 가기를 지정할 수 있습니다. 그것들은 DTD에서 선언된다.
  • 외부 DTD 부분 집합 : DTD의 일부가 외부 에서 조달되는 다른 파일.
  • 파라미터 엔티티 : DTD에서 사용하기위한 바로 가기.
  • 외부 파싱 된 일반 엔티티 : 다른 파일에 저장된 XML 조각입니다.
  • 분석되지 않은 엔티티 : 이미지, 사운드 등 XML에 제한이없는 파일 일 수 있습니다.

대부분의 경우 XML 문서는 문서 엔터티로만 구성됩니다.

미리 정의 된 일반 엔터티

XML은 선언하지 않고 사용할 수있는 다섯 개의 일반 엔터티를 미리 정의합니다.

& " ' < >

그것들은 amp , quot , apos , ltgt 와 같은 이름과 관련이 있습니다.

<?xml version="1.0"?>
<entities>
  &amp; is an ampersand.
  &quot; is a quote.
  &apos; is an apostrophe.
  &lt; is a lower-than sign.
  &gt; is a greater-than sign. 
</entities>

사용자 정의 일반 (내부) 엔티티

자신의 일반 엔티티를 정의 할 수 있습니다. 선언은 DTD 서브 세트에서 이름과 연관된 대체 텍스트를 사용하여 발생합니다.

그런 다음 엔터티 참조 구문 &...; 사용하여 문서에서 사용할 수 있습니다 &...; , 텍스트 또는 속성 값.

<?xml version="1.0"?>
<!DOCTYPE my-document [
  <!ENTITY my-entity "This is my entity">
]>
<my-document>
    The entity was declared as follows: &my-entity;
    <element attribute="Entity: &my-entity;"/>
</my-document>

외부 파싱 된 엔터티

외부 파싱 된 엔티티 의 이름으로도 알려진 XML 조각은 별도의 파일에 저장할 수 있습니다.

XML 문서와 달리 XML 단편은 제한이 적습니다. 여러 요소가 텍스트 노드뿐만 아니라 최상위 레벨로 나타날 수 있습니다. XML 문서와 마찬가지로 외부 파싱 된 엔티티는 XML 선언으로 시작될 수 있지만이 선언은 대체 텍스트의 일부로 간주되지 않습니다.

다음은 외부 파싱 된 엔티티의 예입니다.

<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>

그러면 외부 파싱 된 엔티티는 XML 문서의 DTD에서 선언 될 수 있으며 일반 내부 엔티티와 동일한 구문을 갖는 엔티티 참조와 함께 사용될 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
    &fragment;
</root>

엔티티 참조가 해결되면이 문서는 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
  This is some text
  <element/>
  <element/>
</root>

외부 파싱 된 엔티티의 모든 시작 요소 태그에는 대응하는 종료 태그가 있어야합니다. 단일 요소를 여러 엔터티에 전파하거나 태그를 확산하는 것은 허용되지 않습니다.

엔티티 참조를 확인하고 위와 같이 대체 텍스트를 문서에 포함하려면 유효성을 검사하는 파서가 필요합니다. 유효성을 검증하지 않는 파서는이 작업을 건너 뛸 수 있으며, 대신 소비하는 응용 프로그램에 외부 파싱 된 엔터티에 대한 확인되지 않은 참조가 있음을 알릴 수 있습니다.



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