>백엔드 개발 >C++ >C#에서 참조된 XSD 스키마에 대해 XML의 유효성을 검사하는 방법은 무엇입니까?

C#에서 참조된 XSD 스키마에 대해 XML의 유효성을 검사하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-21 18:57:09617검색

How to Validate XML against a Referenced XSD Schema in C#?

참조된 XSD 스키마에 대한 C# XML 유효성 검사

정의된 스키마에 대해 XML 문서의 유효성을 보장하는 것이 중요합니다. 이 문서에서는 XSD 스키마에 대해 XmlDocument 클래스를 사용하여 C# XML 유효성 검사를 보여줍니다.

기본 동작과 달리 XmlDocument은 XML에 포함된 스키마에 대해 자동으로 유효성을 검사하지 않습니다. 이를 활성화하기 위해 XmlReaderSettings을 구성하겠습니다. 구체적으로 ValidationTypeSchema으로 설정하고 ValidationFlags을 활용하여 인라인 스키마, 스키마 위치 및 보고서 경고를 처리합니다.

<code class="language-csharp">XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;</code>

다음으로 이러한 설정을 사용하여 XmlReader을 생성하고 ValidationEventHandler을 등록하여 검증 결과를 캡처합니다.

<code class="language-csharp">XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);
reader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);</code>

ValidationCallBack 메소드는 유효성 검사 이벤트를 처리합니다.

<code class="language-csharp">private static void ValidationCallBack(object sender, ValidationEventArgs args)
{
    if (args.Severity == XmlSeverityType.Warning)
        Console.WriteLine("\tWarning: " + args.Message);
    else
        Console.WriteLine("\tValidation error: " + args.Message);
}</code>

이 간소화된 방법은 포함된 스키마에 대해 XML의 유효성을 자동으로 검사하므로 XmlDocument 개체에 스키마를 수동으로 로드할 필요가 없습니다. ValidationCallBack 기능은 명확한 경고와 오류 메시지를 제공합니다.

위 내용은 C#에서 참조된 XSD 스키마에 대해 XML의 유효성을 검사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.