이 주제에 대해 많은 좋은 질문을 발견했습니다. 불행히도 대답은 모두 xsd 파일을 사용한다고 말합니다. xsd.exe를 사용하여 xml 파일에서 xsd 파일을 만들었습니다. here의 코드를 복사하여 Visual Studio에 붙여 넣으면 첫 번째 줄에 오류가 있습니다.xsd 파일없이 XML 파일 유효성 확인
내가 왜 실행되지 않을지 알아내는 데 시간을 낭비하고 싶지 않아 직접 유효성 검사를 코딩하기로 결정했습니다. 여기
은 내가 사용하고있는 두 지점입니다 : 왼쪽과 오른쪽 캐럿의 동일한 양들이 될 파일의 끝에 있도록각각 왼쪽 캐럿, 오른쪽 캐럿이있을 것이다. 파일의 끝에
, I 중 하나는 왼쪽 캐럿의 양, 또는 오른쪽 캐럿의 양 (헤더 백 슬래시가 없기 때문에) 전체에서 하나를 빼기를 가지고에 의해 전체를 분할하는 경우 둘, 나는 슬래시의 수를 얻는다.
일부 문제가 발생합니다.
나는이 방법은 속성 (내가 원하지 않는)에있는 캐럿을 계산) (string.count를 사용하고 있습니다.
파일을 읽었을 때 예상되는 백 슬래시 수를 계산합니다. 숫자가 일치하지 않으면 "예상되는 슬래시 수가 일치하지 않습니다"라고 쓰지만 파일에있는 위치를 모르겠습니다.
나는 지금이 문제를 해결할 방법을 생각할 수 없습니다.
누구나 xsd 파일을 사용하지 않고 xml 파일의 유효성을 검사하는 더 나은 방법이 있습니까?
이 문맥에서 유효성 검사는 무엇을 의미합니까? 이 파일이 어떤 종류의 유효한 XML 파일인지 확인하려면 'XDocument.Load'가 트릭을 수행합니다. 특정 제약 조건 세트와 일치하도록하려면 XSD와 같은 것이 이상적입니다. 제게 XSD 예제를 발견하고, 컴파일하는데 어려움을 겪었으며, 수동 파싱으로 바로 넘어갔습니다. 더 좋은 방법이 있습니다 (총'<'/'> '를 잘못 계산할 경우).하지만 중요한 요소는 입력 파일의 요구 사항입니다. – Guvante
바퀴를 재발 명하지 마십시오. xsd의 문제점을 찾아 내면 장기적으로 더 간단해질 것입니다. 날 믿어. –
XML 유효성을 검사하지 않습니다. 여러분은 단지'<>'의 쌍을 세는 것입니다. 이것은 같은 것이 아닙니다. XSD는 데이터 형식의 유효성을 검사하고 필수 요소가 포함되도록합니다. 유효성 검사는 기본 XML 구문 분석기에 XML을로드하는 것보다 간단합니다. 시간과 노력을 낭비하는 대신 XSD를 수정해야합니다. –