2012-06-13 2 views
5

XDocument을 사용하여 파일 목록을 캐시합니다. XML로 파일 이름을 저장하는 올바른 방법은 무엇입니까?

<file id="20" size="244318208">a file with an &amp;ersand.txt</file> 

이 예에서, 내가 XText을 사용하고, 자동으로 같은 &이 하나에서 &amp;

<file id="20" size="244318208"><![CDATA[a file with an &ersand.txt]]></file> 

와 같이 파일 이름에 문자를 탈출하자, 나는 내가 사용하게하는 XCData을 사용 이스케이프 된 문자열이 아닌 리터럴 문자열이므로 응용 프로그램 에서처럼 XML에 나타납니다.

나는 어떤 조건 하에서 어느 쪽이 다른 쪽보다 낫다는 것이 궁금하거나 개인적인 취향이라면 궁금합니다. 또한 의미가있는 경우 파일 이름에 잘못된 문자가 포함될 수도 있고 포함되지 않을 수도 있습니다.

답변

3

둘 다 본질적으로 동일하며 구체적인 "모범 사례"가 없습니다.

개인적으로 많은 양의 이스케이프 처리 (예 : 코드 또는 HTML 마크 업)가 필요한 많은 양의 텍스트는 개인적으로 <![CDATA[]]>입니다.

첫 번째 예제에서와 같이 &&amp;으로 회피하려고합니다.

0

중요하지 않습니다.
둘 다 유효한 XML이며 둘 다 같은 의미입니다.

5

내가하고자하지 명시 적으로 사용 중 XText 또는 XCData - 난 그냥 문자열을 제공하고 싶은 건 뭐든지 XML에 LINQ를 할 것입니다.

비 CDATA 버전이 일반적으로 더 명확하다고 생각합니다. 예, amperands가 탈출하고 - <도 될 것입니다. 그러나 이는 여전히 CDATA 시작/끝 섹션보다 훨씬 더 보잘것 없습니다.

사람이 XML 표현 자체를 보는 것은 거의 드문 일이 아닙니다. 아이디어는이 필요할 때 표현에서 합리적으로 읽을 수있는 정보를위한 전송이라는 아이디어입니다. 나는 그것에 너무 매달리지 않을 것이다.

1

대부분의 파일 이름에는 앰퍼샌드가 포함되지 않으며 기호는 적게 사용됩니다. 그래서 XText로 가라. XCData를 XML 문서에 포함하거나 HTML 조각을 넣을 때와 같이 많은 문자가 필요한 경우에 대비하여 XCData를 예약하십시오.

이론적 설명 : 텍스트를 직렬화하고 구문 분석하기위한 CPU 사용률의 차이는 완전히 무시할 수 있습니다. 그러나 스토리지, 대역폭 또는 메모리 요구 사항에 (작은) 차이가 있습니다. 다른 모든 것이 동등한 경우 차이가 작은 경우에도 최소 공간을 사용하는 형식을 사용하십시오.

관련 문제