programing

XML 문서에서 탈출하려면 어떤 문자가 필요합니까?

yellowcard 2023. 9. 12. 19:57
반응형

XML 문서에서 탈출하려면 어떤 문자가 필요합니까?

XML 문서에서 어떤 문자를 빼야 하는지, 또는 그러한 목록을 어디서 찾을 수 있습니까?

적절한 수업이나 도서관을 이용하면 탈출이 가능합니다.많은 XML 문제는 문자열 연결로 인해 발생합니다.

XML 이스케이프 문자

5개뿐입니다.

"   "
'   '
<   &lt;
>   &gt;
&   &amp;

탈출 문자는 특수 문자가 사용되는 위치에 따라 다릅니다.

예는 W3C Markup Validation Service에서 확인할 수 있습니다.

본문

안전한 방법은 텍스트에 있는 다섯 글자를 모두 피하는 것입니다.",'그리고.>텍스트로 빠져나올 필요가 없습니다.

<?xml version="1.0"?>
<valid>"'></valid>

특성

안전한 방법은 속성에 있는 다섯 개의 캐릭터를 모두 벗어나는 것입니다.만,그>특성에서 문자를 이스케이프할 필요가 없습니다.

<?xml version="1.0"?>
<valid attribute=">"/>

'가과서를낼가다e다가낼dfbnnte'de과s가면에서":

<?xml version="1.0"?>
<valid attribute="'"/>

로."가과면서날다e다가날dfbnnetd'e과가s에서':

<?xml version="1.0"?>
<valid attribute='"'/>

평.

주석에 특수 문자 5개를 모두 빼서는 안 됩니다.

<?xml version="1.0"?>
<valid>
<!-- "'<>& -->
</valid>

CDATA

CDATA 섹션에서 특수 문자 5개를 모두 빼서는 안 됩니다.

<?xml version="1.0"?>
<valid>
<![CDATA["'<>&]]>
</valid>

처리지시

XML 처리 지침에서 특수 문자 5개를 모두 빼서는 안 됩니다.

<?xml version="1.0"?>
<?process <"'&> ?>
<valid/>

XML 대 HTML

HTML에는 훨씬 더 많은 문자를 포함하는 자체 이스케이프 코드 세트가 있습니다.

이를 통해 다음과 같은 이점을 얻을 수 있을 것입니다.

XMLHTML 문자 엔티티 참조 목록:

SGML, HTML 및 XML 문서에서 문자 데이터 및 속성 값으로 알려진 논리적 구성은 문자의 시퀀스로 구성되며, 각 문자는 직접적으로 발현(자신을 나타내는)하거나 문자 참조라고 하는 일련의 문자로 표현될 수 있습니다.이 중에는 숫자 문자 참조와 문자 개체 참조의 두 가지 유형이 있습니다.이 문서에는 HTML 및 XML 문서에서 유효한 문자 개체 참조가 나열되어 있습니다.

이 문서에는 다음 5개의 미리 정의된 XML 엔티티가 나열되어 있습니다.

quot  "
amp   &
apos  '
lt    <
gt    >

오래된 질문에 대한 새롭고 단순화된 답변...

단순 XML 이스케이프

  1. 항상 (기억해야 할 90% 중요)

    • 탈출구 <~하듯이&lt;~하지 않는 한<마크업이나 다른 마크업을 시작하는 중입니다.
    • 탈출구 &~하듯이&amp;~하지 않는 한&를 시작합니다.
  2. 속성 값 (기억해야 할 9% 중요)

    • attr=" '작은따옴표 '큰따옴표 내에서 OK입니다."
    • attr=' " "하나의 따옴표 내에서 ok.'
    • 탈출구 "~하듯이&quot;그리고.'~하듯이&apos;그렇지않으면.
  3. 주석, CDATA처리 지침 (기억해야 할 중요성 0.9%)

    • <!--댓글내 -->도망쳐야 할 것은 없지만, 아니요.--문자열은 허용됩니다.
    • <![CDATA[CDATA ]]>도망갈 필요는 없지만, 아니요.]]>문자열은 허용됩니다.
    • <?PITargetPI ?>도망갈 필요는 없지만, 아니요.?>문자열은 허용됩니다.
  4. 난해증 (기억해야 할 중요성 0.1%)

    • 베이스64 또는 숫자 문자 참조통해 XML 1.1의 제어 코드를 이스케이프합니다.
    • 탈출구 ]]>~하듯이]]&gt;~하지 않는 한]]>CDATA 섹션을 종료합니다.
      됩니다 – 섹션 에서도.) ( 은 으로 에 되며 됩니다 에서도 됩니다 에서도 되며 )

W3C(World Wide Web Consortium)의 사양에 따르면 마크업 구분자로 사용되거나 주석, 처리 명령 또는 CDATA 섹션 내에서 사용되는 경우를 제외하고 XML 문서에서 문자 형태로 나타나지 않아야 하는 문자가 5개 있습니다.다른 모든 경우에는 다음 표에 따라 해당 엔터티 또는 숫자 참조를 사용하여 이러한 문자를 교체해야 합니다.

Original CharacterXML entity replacementXML numeric replacement
<                              &lt;                                    &#60;                                    
>                              &gt;                                   &#62;                                    
"                               &quot;                               &#34;                                    
&                              &amp;                               &#38;                                    
'                               &apos;                               &#39;                                    

XHTML 1.0과 함께 도입되어 HTML 4에 선언되지 않은 &apos;를 제외하고 HTML에서도 위 엔티티를 사용할 수 있음을 유의하시기 바랍니다. 이와 같이 역호환성을 보장하기 위해 XHTML 사양에서는 &#39;를 대신 사용할 것을 권장합니다.

이스케이프 문자는 태그와 속성에 따라 다릅니다.

태그의 경우:

 < &lt;
 > &gt; (only for compatibility, read below)
 & &amp;

속성의 경우:

" &quot;
' &apos;

문자 데이터마크업에서:

앰퍼샌드 문자(&)와 왼쪽 각괄호(<)는 마크업 구분자로 사용되거나 주석, 처리 명령어 또는 CDATA 섹션 내에 사용되는 경우를 제외하고는 문자 형태로 나타나지 않아야 합니다.다른 곳에서 필요한 경우 숫자 문자 참조 또는 "&amp;" 및 "&lt;" 문자열을 사용하여 해당 문자열을 제거해야 합니다.오른쪽 각괄호(>)는 문자열 " &gt;"로 나타낼 수 있으며, 호환성을 위해 해당 문자열이 CDATA 섹션의 끝을 표시하지 않는 경우 내용의 문자열 " ]>"에 표시될 때 " &gt;" 또는 문자 참조를 사용하여 탈출해야 합니다.

속성 값에 큰따옴표와 큰따옴표가 모두 포함되도록 하려면 아포스트로피 또는 작은따옴표 문자(')를 "&apos;"로, 큰따옴표 문자(")를 "&quot;로 나타낼 수 있습니다.

일반적으로 알려진 5개의 문자[<, >, &, ", ", '] 외에 세로탭 문자(0x0B)도 피하겠습니다.유효한 UTF-8이지만 유효한 XML 1.0은 아니며, 심지어 많은 라이브러리(ANSIC) 라이브러리 libxml2를 포함)가 이 라이브러리를 놓쳐서 유효하지 않은 XML을 자동으로 출력합니다.

축약: XML, 이스케이프

미리 정의된 엔티티는 5개입니다.

&lt; represents "<"
&gt; represents ">"
&amp; represents "&"
&apos; represents '
&quot; represents "

"허용되는 모든 유니코드 문자는 숫자 문자 참조로 나타낼 수 있습니다."예를 들어,

&#20013;

대부분의 컨트롤 문자와 기타 유니코드 범위는 특별히 제외됩니다. 즉, 이스케이프 또는 다이렉트로 발생할 수 없습니다.

XML에 유효한 문자

허용된 답변이 올바르지 않습니다.xml을 탈출하기 위해 라이브러리를 사용하는 것이 가장 좋습니다.

이 다른 질문에 언급된 바와 같이

"기본적으로 유니코드 범위를 벗어나는 컨트롤 문자와 문자는 허용되지 않습니다.이것은 또한 예를 들어 캐릭터 개체를 부르는 것이 금지되어 있다는 것을 의미합니다."

다섯 글자만 벗어나면.잘못된 XML 문자(Unicode: 0xc)가 발견된 경우와 같은 문제가 발생할 수 있습니다.

그것은 상황에 따라 다릅니다.내용의 경우 <및 &, 그리고 ]>입니다(한 문자 대신 3개의 문자열로 구성됨).

특성 값의 경우 <, &, " 및 '입니다.

CDATA의 경우는 ]]"입니다.

오직.<그리고.&마크업이 아닌 문자 데이터를 처리하려면 탈출해야 합니다.

2.4 문자 데이터와 마크업

언급URL : https://stackoverflow.com/questions/1091945/what-characters-do-i-need-to-escape-in-xml-documents

반응형