와일드카드 구성 요소 및 콘텐츠 유효성 검사Wildcard Components and Content Validation

와일드카드 구성 요소는 콘텐츠 모델에 나타나는 형식의 유연성을 향상시키는 데 사용됩니다.Wildcard components are used to increase flexibility in what is allowed to appear in a content model. 이러한 구성 요소는 XSD 언어에서 다음과 같은 방식으로 지원됩니다.These components are supported in the XSD language in the following ways:

  • 요소 와일드카드 구성 요소:Element wildcard components. 이러한 구성 요소는 <xsd:any> 요소로 표시됩니다.These are represented by the <xsd:any> element.

  • 특성 와일드카드 구성 요소:Attribute wildcard components. 이러한 구성 요소는 <xsd:anyAttribute> 요소로 표시됩니다.These are represented by the <xsd:anyAttribute> element.

    <xsd:any><xsd:anyAttribute> 와일드카드 문자 요소는 모두 processContents 특성의 사용을 지원합니다.Both wildcard character elements, <xsd:any> and <xsd:anyAttribute>, support the use of a processContents attribute. 이렇게 하면 XML 응용 프로그램에서 이러한 와일드카드 문자 요소와 관련된 문서 내용에 대한 유효성 검사를 처리하는 방법을 나타내는 값을 지정할 수 있습니다.This lets you specify a value that indicates how XML applications handle the validation of document content associated with these wildcard character elements. 다음은 다양한 값과 해당 기능에 대한 설명입니다.These are the different values and their effect:

  • strict 값은 콘텐츠의 유효성을 완전히 검사하도록 지정합니다.The strict value specifies that the contents are fully validated.

  • skip 값은 콘텐츠의 유효성을 검사하지 않도록 지정합니다.The skip value specifies that the contents are not validated.

  • lax 값은 스키마 정의가 사용 가능한 요소와 특성에 대해서만 유효성을 검사하도록 지정합니다.The lax value specifies that only elements and attributes for which schema definitions are available are validated.

lax 유효성 검사 및 xs:anyType 요소Lax Validation and xs:anyType Elements

XML 스키마 사양에서는 anyType 유형의 요소에 대해 lax 유효성 검사를 실행합니다.The XML Schema specification uses lax validation for elements of the anyType type. SQL Server 2005SQL Server 2005 에서는 lax 유효성 검사를 지원하지 않았으므로 anyType요소에 엄격한 유효성 검사가 적용되었습니다.Because SQL Server 2005SQL Server 2005 did not support lax validation, strict validation was applied for elements of the anyType. SQL Server 2008SQL Server 2008부터는 lax 유효성 검사가 지원되므로Beginning with SQL Server 2008SQL Server 2008, lax validation is supported. 이를 통해 anyType 유형 요소의 콘텐츠에 대한 유효성이 검사됩니다.Content of elements of type anyType will be validated using lax validation.

다음 예에서는 lax 유효성 검사를 보여 줍니다.The following example illustrates the lax validation. 스키마 요소 eanyType 유형 중 하나입니다.The schema element e is of the anyType type. 이 예에서는 형식화된 xml 변수를 만들고 anyType 유형 요소의 lax 유효성 검사에 대해 보여 줍니다.The example creates typed xml variables and illustrates the lax validation of the element of the anyType type.

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  

<e> 의 유효성 검사가 성공하므로 다음 예도 성공합니다.The following example succeeds, because the validation of <e> is successful:

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

다음 예도 성공합니다.The following example succeeds. 스키마에서 <c> 요소가 정의되지 않더라도 인스턴스는 수락됩니다.The instance is accepted, even though no element <c> is defined in the schema:

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

다음 예에서 <a> 요소의 정의는 문자열 값을 사용할 수 없기 때문에 XML 인스턴스가 거부됩니다.The XML instance in the following example is rejected, because the definition of the <a> element does not allow a string value.

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

참고 항목See Also

서버의 XML 스키마 컬렉션에 대한 요구 사항 및 제한 사항Requirements and Limitations for XML Schema Collections on the Server