programing tip

XML 주석 및 "-"

itbloger 2020. 12. 15. 08:16
반응형

XML 주석 및 "-"


<!-- here is some comment --
                            ^
                            |
                    what can be here apart from '>'?

XML은 주석 안에 '-'를 좋아하지 않는 것 같습니다. 나는 어딘가에서 '-'가 내부의 일부 모드를 전환 <! ... >하지만 <!-- -- -- -->(짝수 --s)도 유효하지 않은 것처럼 보입니다. 역사적인 기능인 경우 "프로"부분은 무엇입니까? ( "대비"부분은 --주석에 포함 할 수 없음 ).

댓글 끝에 '->'만 남기고 안에 '-'를 허용하여 댓글 처리를 복잡하게 만드는 이유는 무엇입니까?


표준 문서에서 :

http://www.w3.org/TR/REC-xml/#sec-comments

[정의 : 주석은 문서의 다른 마크 업 외부에 나타날 수 있습니다. 또한 문법에서 허용하는 위치에서 문서 유형 선언 내에 나타날 수 있습니다. 문서의 문자 데이터의 일부가 아닙니다. XML 프로세서는 응용 프로그램이 주석 텍스트를 검색 할 수 있도록 할 수 있지만 반드시 그럴 필요는 없습니다. 대한 호환성 , 문자열 "-"(이중 하이픈) 주석 내에서 발생하지 않아야합니다]. 파라미터 엔티티 참조 주석 내에 인식 할 수 없습니다.


누군가에게 도움이 될 수 있습니다. -로 시작하는 XML의 명령 줄 매개 변수를 주석 처리하려는 문제가있었습니다.

<arg line="-v --line-break 0" />  

이렇게 자연스럽게 정상적인 방법

<!-- <arg line="-v --line-break 0" /> -->

작동하지 않았지만 -UTF-8로 대체 되면 &#x002D;작동하며 주석 내에서 허용 될 수 있음을 알았습니다 .

그래서 제 경우에는 문자열

<arg line="-v &#x002d;&#x002d;line-break 0" />

올바르게 구문 분석되고 주석의 일부가 될 수 있습니다.

물론 약간 못 생겼지 만 누군가가 자신의 XML의 주석으로 문자열을 유지하고 싶다면 아무것도없는 것보다 낫다고 생각합니다.


그것은 SGML에 있었고 사람들이 호환성을 깨고 싶어하지 않았기 때문에 XML에있는 어리석은 규칙 중 하나입니다. SGML에있는 이유는 누구나 추측 할 수 있습니다. 아마도 원래 파서에 세 줄의 코드를 저장했기 때문일 것입니다.


--SGML과의 호환성을 위해 허용되지 않습니다. 에서 온 SGML과 HTML :

마크 업 선언 열기 구분 기호 ( "<!")와 주석 열기 구분 기호 ( "-") 사이에는 공백이 허용되지 않지만 주석 닫기 구분 기호 ( "-")와 마크 업 선언 닫기 구분 기호 ( "-") 사이에는 허용됩니다. ">"). 일반적인 오류는 주석 내에 하이픈 ( "---") 문자열을 포함하는 것입니다. 작성자는 주석 안에 두 개 이상의 인접한 하이픈을 넣지 않아야합니다.

그래서 SGML에서 <!>개폐 "마크 업 선언"과 --열리고 닫히는 코멘트.

참조 URL : https://stackoverflow.com/questions/10842131/xml-comments-and

반응형