다음을 통해 공유


완화: XML 스키마 유효성 검사

.NET Framework 4.6에서 복합 키를 사용하고 한 개의 키가 비어 있는 경우 XSD 스키마 유효성 검사가 고유한 제약 조건 위반을 검색합니다.

영향

이 변경에 따른 영향이 최소화되어야 합니다. 빈 키가 포함된 복합 키를 사용함으로써 xsd:unique가 위반된 경우 스키마 사양에 따라 스키마 유효성 검사 오류가 예상됩니다.

완화

복합 키에 한 개의 빈 키가 있는 경우 스키마 유효성 검사 오류 검색 여부는 구성 가능한 기능입니다.

  • .NET Framework 4.6을 대상으로 하는 앱부터 스키마 유효성 검사 오류 검색은 기본적으로 사용하도록 설정되어 있습니다. 그러나 스키마 유효성 검사 오류가 검색되지 않도록 이 기능을 옵트아웃(opt out)할 수 있습니다.

  • .NET Framework 4.6에서 실행되지만 .NET Framework 4.5.2 및 이전 버전을 대상으로 하는 앱에서는 스키마 유효성 검사 오류가 기본적으로 검색되지 않습니다. 그러나 스키마 유효성 검사 오류가 검색되도록 이 기능을 옵트인(opt in)할 수 있습니다.

이 동작은 AppContext 클래스를 사용하여 System.Xml.IgnoreEmptyKeySequences 스위치의 값을 정의하도록 구성할 수 있습니다. 스위치의 기본값은 false(빈 키 시퀀스가 무시되지 않음)이기 때문에 .NET Framework 4.6을 대상으로 하는 앱은 다음 코드를 사용하여 스위치의 값을 true로 설정하면 해당 동작을 옵트아웃(opt out)할 수 있습니다.

// Ignore empty key sequences in apps that target .NET 4.6
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", true);
' Ignore empty key sequences in apps that target .NET 4.6
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", True)

.NET Framework 4.5.2 및 이전 버전을 대상으로 하는 앱의 경우 스위치의 기본값이 true(빈 키 시퀀스가 무시됨)이기 때문에 다음 코드를 사용하여 스위치의 값을 false로 설정하면 빈 키가 포함된 복합 키가 스키마 유효성 검사 오류를 생성하도록 할 수 있습니다.

// Do not ignore empty key sequences in apps that target .NET 4.5.1 and earlier
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", false);
' Do Not ignore empty key sequences in apps that target .NET 4.5.1 And earlier
AppContext.SetSwitch("System.Xml.IgnoreEmptyKeySequences", False)

참고 항목