2014-09-28 5 views
-1

DTD에 대해 유효한 문서가 있으면 DTD가 만족 스럽다고 말하면 만족스럽지 않은 DTD의 예가 있습니까?유효한 문서 인스턴스가없는 DTD의 예가 있습니까?

+0

사실 XML 문서는 DTD를 따르며 다른 방법은 아닙니다. DTD는 "conforming"의 특정 의미가 규칙의 형태로 규정되어있는 곳이기 때문에 "conforming"이라고 할 수 없습니다. –

+0

이것은 소스가 프로그래밍 언어를 준수하면 프로그램이 유효하다고 묻는 것과 같습니다. 유효하지 않은 프로그래밍 언어의 예가 있습니까? – slebetman

+0

좋아요, DTD가 만족하는 문서가 있다면 만족 스럽습니다, 만족할만한 DTD 예제가 있습니까? – alex

답변

1

재미있는 질문 (OP의 초기 문제에도 불구하고 좋은 단어를 찾았음에도 불구하고).

답변 : 예, 유효한 인스턴스가없는 DTD가 있습니다. 여기 몇 가지 예가 있어요.

(1)이 DTD에는 유한 인스턴스가 없습니다. 요소 유형 e의 각 인스턴스에는 요소 유형 e의 다른 인스턴스가 필요합니다.

<!ELEMENT e (e) > 

아래의 주석에서 알렉스가 DTD에서 무한 루프를 호출하는 예입니다.

(2)이 DTD에도 인스턴스가 없습니다. e 유형의 각 인스턴스는 문서의 ID를 참조하는 IDREF가 필요하지만 ID 유형의 속성은 선언되지 않으므로 가리킬 ID가 없습니다. 각 인스턴스는 f 요소가 필요하지만 f 요소는 선언되지 않은 :

<!ELEMENT e ANY > 
<!ATTLIST e ref IDREF #REQUIRED > 

(3)이 DTD는 유효한 인스턴스가 없습니다.

<!ELEMENT e (f) > 

요소 선언이없는 DTD도 만족할 만하지 않습니다.

+0

이고 DTD에 무한 루프가있는 경우 해당 DTD에 XML이 부합하지 않습니다. . – alex