2016-11-14 1 views
0

: DTD :XML DTD. XML 파일에 빈 요소를 지정하는 방법 빈 요소

<!ELEMENT WARNING EMPTY> 

XML :

<WARNING /> 

или

<WARNING></WARNING> 

?

두 가지 모두 올바른 것으로 파서에서 허용됩니다.

+3

문제점 : 사실, 두 요소 모두 내용이 없기 때문에 비어 있습니다. DTD를 고려할 때 ''과 ''모두 합법적이라는 의미입니다. – potame

+0

@potame 문제가되지 않습니다. 그것은 하나의 질문입니다. 두 요소가 합법적 인 경우 어느 것이 선호됩니까? –

+1

조금 덜 길기 때문에 내 자신의 환경 설정은' '이 될 것입니다. 그러나 나는 주장 할 것이다 : 둘 다 동일하다. – potame

답변

1

XML 사양에는 명시 적으로 두 가지 형식이 동등한 것으로 취급됩니다. 그것은 쌍 태그 양식 <e></e> 콘텐츠 및 요소에 대한 단일 태그 형태 <e/>를 가질 수있는 것으로 선언 된 요소에 사용 빈 선언하는 것이 (A SHOULD로) 추천 않습니다 https://www.w3.org/TR/xml/#sec-starttags

참조하십시오. DTD도 스키마도없는 응용 프로그램에서는이 구별을 사용할 수 없으며 모든 사람이이 사양의 권장 사항에주의를 기울이지 않는다고 생각하지 않습니다. (당시에는 좋은 생각 인 것 같았습니다.)

[부록, 나중에] 최근에 스펙의 관련 부분을 다시 살펴 보았습니다. 그리고 친구는 그 권고가 <e/>은 EMPTY로 선언 된 요소에 사용되며 "상호 운용성"으로 레이블이 지정됩니다.이 규격에서는 "XML보다 앞선 SGML 소프트웨어와의 성공적인 상호 운용성의 기회를 높이기 위해"라는 의미로 정의합니다. 왜 그런 사람들이 적은 패턴을 따르는 지 설명 할 수 있습니다. 요즘에는 1998 년 이전에 개발 된 SGML 소프트웨어와 상호 운용해야하는 사람이 거의 없습니다.