C#에서 XmlDocument 개체를 사용하여 만드는 XML이 있습니다.System.Xml.XmlDocument.OuterXml의 SQL 2005 XML 특수/이스케이프 문자
다음 XmlDocument.OuterXml 메서드를 사용하여 SQL 2005의 XML 열에 xml 데이터를 삽입하여 원시 xml을 가져옵니다.
문제는 XML에 몇 가지 특수 문자가 포함되어 있다는 것입니다. 즉 : 
이것은 XML이 다양한 소스의 사용자 입력을 기반으로 구축 되었기 때문입니다.
삽입을 수행 할 때 XML 구문 분석 : 잘못된 XML 문자를 나타내는 SQL 오류 메시지가 표시됩니다.
CREATE TABLE #MyTable (MyColumn XML)
INSERT INTO #MyTable VALUES ('<Element></Element>')
메시지 9420, 수준 16, 상태 1, 줄 2
XML 구문 분석 : 줄 1, 문자 (15), 불법 XML 문자
어떻게 내가 할 수있는 사람은 한 방향으로 날 지점 수 이거 해결해?
XmlDocument 개체 나 원본 XML 자체를 변경하는 것이 매우 어려울 수 있지만 RAW XML을 사용하는 메커니즘을 변경할 수 있습니다. 필요한 경우 데이터베이스 설정을 변경할 수도 있습니다.
가 된 XmlDocument O를 만드는 방법이 있는가 I는 #MyTable 값으로 명확하게 해주기 ('</E의 lement>; # 1 × F < E의 lement> & A')를
삽입 공간을 추가 동일한 유효성 검사 규칙을 적용해야합니까? 이러한 문자는 html 텍스트 상자에 타이핑/붙여 넣기 한 사용자로부터 왔으며이 TextBox.Text는 XmlNode.InnerText에 할당되었습니다. XML이 유효하지 않은 경우이 시점에서 충돌이 발생하지 않았다는 사실에 놀랐습니다. –
http://msdn.microsoft.com/en-us/library/56xykaw6.aspx (영문) –
유효하지 않은 데이터를 보존 할 필요가 없습니다. 그것은 웹 페이지의 모든 사용자 입력이므로 어쨌든 어떤 이스케이프 문자가 들어 있는지 확실하지 않습니다. 나는 그것을 정화하고 싶습니다. 단지 우아한 해결책이 필요합니다. 전체 문자열을 반복하여 잘못된 문자를 제거하는 코드를 발견했습니다. 이것은 나에게 잘못된 것처럼 보입니다. 어떤 문자가 유효한지 코딩되지 않아야합니다. –