2016-09-26 3 views
0

나는 XML에 대해 새롭기 때문에 나는 알아야한다.XML에서 ASCII 제어 문자를 읽을 수 있습니까?

XML에서 ASCII 제어 문자를 읽을 수 있습니까? 또는

XML의 ASCII 제어 문자를 대체 할 수 있습니까?

+0

나는 최선을 다해 답변했지만, 성취하려는 것에 대해 더 자세히 설명해 주면 도움이 될 것입니다. –

+0

위키 기사를 참조하십시오. : https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references – jdweng

+0

@ jdweng : 어떻게 도움이됩니까? 제어 문자에 대해서는 전혀 말하지 않습니다 –

답변

3

XML 1.1은 U + 0000 이외의 모든 유니 코드 문자를 허용하지만 XML 1.0에는 제한된 문자 집합이 있습니다. section 2.2 of the 5th edition에서 : 기본이되는 문자 세트입니다

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] 

- 당신이 그들을 만드는 등 CharRef을 사용할 수 없습니다.

불행히도 XML 1.0은 기본적으로 모든 곳에서 사용되고 있습니다. XML 1.1은 결코 벗어나지 않았습니다. 즉, ASCII 컨트롤 문자가 포함 된 XML 문서를 만들면 안됩니다. 유효한 XML 문서는 아니지만 많은 XML API가 불행하게도 만들 수 있습니다. (

기본적으로 데이터를 전달하기 전에 데이터를 제어 문자로 변환해야합니다. 데이터를 보존해야하는 경우 자체 이스케이프 또는 이와 유사한 텍스트를 작성해야합니다 (예 : 전체 텍스트를 UTF-8 인코딩 한 다음 base64에서 ... 모두 아주 심술 궂습니다.)

+0

안녕 존, 당신의 대답은 유용합니다. 내 시스템에는 XML 파일이 있지만 ASCII 제어 문자가 포함되어 있습니다. 그리고 C#을 사용하여 브라우저에 XML 파일을 표시해야합니다. 하지만 오류가 발생했습니다. 그렇다면 ASCII 제어 문자를 바꾸거나 문자를 건너 뛰는 방법이 있습니까? –

+1

@SRJ : 기본적으로 유효한 XML 파일이 아닙니다. 인코딩을 알고 문자를 바꾼 다음 메모리에서 파싱하거나 디스크에 다시 저장하면 파일을 문자열 (예 :'File.ReadAllText')로로드 할 수 있습니다. XML 파일의 출처를 조사하고 문제점을보고해야합니다. –

+0

"XML 1.1은 모든 유니 코드 문자를 허용합니다"는 엄격히 사실이 아니며 U + 0000은 유니 코드 문자로 간주되지만 XML 1.1에서는 사용할 수 없습니다. 나머지는 실제로 허용됩니다. (그리고 그 점에 관해서는, 아스트랄 비행기의 비 문자는 유니 코드로 허용되지 않지만 양쪽 모두에 허용됩니다. 왜냐하면 그들은 과도한 단순화로 간주 될 수있는 유효한 텍스트 파일에 허용되지 않기 때문입니다 또는 그 괴괴 망측을보기 위하여 선택하는 방법에 따라서 spec에있는 벌레). –

관련 문제