Joker bileşenleri ve içerik doğrulama

Joker bileşenleri bir içerik modelinde görünmesini izin esneklik artırmak için kullanılır.Bu bileşenler aşağıdaki şekillerde xsd dili desteklenmektedir:

  • Joker bileşenleri öğesi.Bunlar tarafından temsil edilen <xsd: tüm> öğesi.

  • Joker bileşenleri özniteliği.Bunlar tarafından temsil edilen <xsd:anyAttribute> öğesi.

Her iki joker karakter öğelerinin <xsd: tüm> ve <xsd:anyAttribute>, kullanımını destekleyen bir processContents öznitelik.Bu xml uygulamaları bu joker karakter öğelerle ilişkili belge içeriği doğrulama nasıl işleneceğini belirten bir değer belirtmenizi sağlar.Etkileri ve farklı değerler şunlardır:

  • The strict value specifies that the contents are fully validated.

  • The skip value specifies that the contents are not validated.

  • The lax value specifies that only elements and attributes for which schema definitions are available are validated.

Lax doğrulama ve xs:anyType öğeleri

xml Schema kullaným kullanır lax öğeleri için doğrulama anyType türü.Çünkü SQL Server 2005 lax doğrulama desteği, sıkı doğrulama için öğeleri uygulandığı anyType. İle başlayan SQL Server 2008, lax doğrulama desteklenir.İçerik türü öğeleri anyType lax doğrulama kullanılarak doğrulanır.

Lax doğrulama aşağıdaki örnekte gösterilmektedir.Şema öğesi e biri olan anyType türü.Yazılı örnek oluşturur xml değişkenleri ve öğenin lax doğrulama göstermektedir anyType türü.

CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://ns">
   <element name="e" type="anyType"/>
   <element name="a" type="byte"/>
   <element name="b" type="string"/>
 </schema>'
GO

Aşağıdaki örnek, çünkü başarılı doğrulanmasını <e> başarılı olur:

DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><b>data</b></e>'
GO

Aşağıdaki örnek başarılı olur.Örnek, hatta hiçbir öğe rağmen kabul edilen <c> Şemada tanımlı:

DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><c>Wrong</c><b>data</b></e>'
GO

Aşağıdaki örnekte xml örnek, çünkü reddedilir tanımını <a> öğesine izin vermez bir dize değeri.

DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>Wrong</a><b>data</b></e>'
SELECT @var
GO