Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V rozhraní .NET Framework 4.6 zjistí ověření schématu XSD porušení jedinečného omezení, pokud se použije složený klíč a jeden klíč je prázdný.
Dopad
Dopad této změny by měl být minimální: na základě specifikace schématu se očekává chyba ověření schématu, pokud xsd:unique je porušena pomocí složeného klíče s prázdným klíčem.
Zmírnění
Jestli se zjistí chyba ověření schématu, pokud má složený klíč jeden prázdný klíč, je konfigurovatelná funkce:
Počínaje aplikacemi, které cílí na rozhraní .NET Framework 4.6, je detekce chyby ověření schématu ve výchozím nastavení povolena; Je však možné se z ní odhlásit, aby se nezjistila chyba ověření schématu.
V aplikacích, které běží v rozhraní .NET Framework 4.6, ale cílí na rozhraní .NET Framework 4.5.2 a starší verze, není ve výchozím nastavení zjištěna chyba ověření schématu; Je však možné se k němu přihlásit, aby byla zjištěna chyba ověření schématu.
Toto chování lze nakonfigurovat pomocí AppContext třídy k definování hodnoty System.Xml.IgnoreEmptyKeySequences přepínače. Vzhledem k tomu, že výchozí hodnota přepínače je false (prázdné sekvence klíčů nejsou ignorovány), můžou aplikace, které cílí na rozhraní .NET Framework 4.6, odhlásit chování pomocí následujícího kódu k nastavení hodnoty přepínače na true:
// 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)
U aplikací, které cílí na rozhraní .NET Framework 4.5.2 a starší verze, protože výchozí hodnota přepínače je true (prázdné sekvence klíčů jsou ignorovány), je možné zajistit, aby složený klíč s prázdným klíčem vygeneroval chybu ověření schématu pomocí následujícího kódu k nastavení hodnoty přepínače na 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)