Visual Basic .NET의 에서 XML 스키마 기준으로 XML 조각 방법 확인

기술 자료 번역 기술 자료 번역
기술 자료: 317463 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 XmlValidatingReaderXMLSchemaCollection 개체를 확장할 태그 언어 (XML) 조각을 XML 스키마에 대해 유효성을 검사하는 방법을 설명합니다.

XmlValidatingReaderXmlReader 클래스를 구현하고 XML 데이터 유효성 검사 지원을 제공합니다. XmlValidatingReader스키마 속성이 있는 XmlSchemaCollection 캐시된 스키마 파일 판독기를 연결합니다. XmlValidatingReaderValidationType 속성을 판독기가 수행할 유효성 검사의 형식을 지정합니다. ValidationType.None 수 있는 속성을 설정하지 않으면 nonvalidating 판독기를 만듭니다.

XmlSchemaCollection 위해 XSD (XML 스키마 정의 언어) 스키마와 XML-Data 감소 (XDR) 스키마를 추가할 수 있습니다. Add 메서드를 네임스페이스 URI는 스키마를 로드할 수 있습니다. XML 스키마를 일반적인 네임스페이스 URI를 스키마에 targetNamespace 속성입니다.

요구 사항

다음은 권장되는 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩의 목록입니다.
  • Microsoft Visual Studio 호환되는 Microsoft Windows 운영 체제에 설치된 .NET
이 문서에서는 사용자가 다음 항목을 잘 알고 있다고 가정합니다.
  • Visual Basic .NET
  • 기본 XML 표준
  • XSD 스키마

XSD 스키마 만들기

C:\Books.xsd 라는 새 텍스트 파일에 다음 코드를 붙여:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:bookstore-schema" elementFormDefault="qualified" targetNamespace="urn:bookstore-schema">
	<xsd:element name="bookstore" type="bookstoreType" />
	<xsd:element name="comment" type="xsd:string" />
	<xsd:element name="author" type="authorName"/>
	<xsd:complexType name="authorName">
		<xsd:sequence>
			<xsd:element name="first-name" type="xsd:string" />
			<xsd:element name="last-name" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="bookstoreType">
		<xsd:sequence maxOccurs="unbounded">
			<xsd:element name="book" type="bookType" />
			<xsd:element ref="comment" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="bookType">
		<xsd:sequence>
			<xsd:element name="title" type="xsd:string" />
			<xsd:element ref="author" />
			<xsd:element name="price" type="xsd:decimal" />
		</xsd:sequence>
		<xsd:attribute name="genre" type="xsd:string" />
	</xsd:complexType>
	
</xsd:schema>
				

Visual Basic .NET 응용 프로그램 만들기

  1. 만들 새 Visual Basic .NET Windows 응용 프로그램.
  2. Button1 Form1에 끕니다. Class Form1 전용 멤버 변수를 추가하려면 다음 코드를 붙여 넣습니다.
    Dim m_success As Boolean
    					
  3. XMLValidatingReader 개체 유효성 검사 오류를 발생시키는 ValidationEventHandler 만들려면 다음 하위 프로시저의 붙여넣기:
    Public Sub ValidationEventHandle(ByVal sender As Object, ByVal args As ValidationEventArgs)
            m_success = False
            Console.WriteLine((ControlChars.CrLf & ControlChars.Tab & "Validation error: " & args.Message))
        End Sub 'ValidationEventHandle
    						
    참고: 데이터 형식 정의 (DTD에서)를 사용하여 XML-Data 감소 (XDR) 유효성 검사 오류에 대한 정보를 받을 이벤트 처리기를 포함해야 합니다 스키마 및 XML 스키마 정의 언어(XSD) 스키마를. 이벤트 처리기는 이 이벤트와 관련된 데이터를 포함하는 ValidationEventArgs 형식의 인수를 받습니다.

    콜백 처리기를 ValidationEventArgs.Severity 속성을 사용하여 스키마에 대해 XML 인스턴스 문서의 유효성을 보장할 수 있습니다. 심각도 속성을 사용하면 치명적인 오류 나타냅니다 (심각도XmlSeverityType.Error 같은지) 유효성 검사 오류가 있는 유효성 검사 구분할 수 있습니다 (심각도XmlSeverityType.Warning 같은지) 경고 스키마 정보를 사용할 수 있음을 나타냅니다.
  4. Button1_Click 이벤트 프로시저에 다음 코드를 붙여:
            Dim reader As XmlValidatingReader = Nothing
            Dim myschema As New XmlSchemaCollection()
    
            Try
                'Create the XML fragment to be parsed.
                Dim xmlFrag As String = "<author  xmlns='urn:bookstore-schema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" & _
                                "<first-name>Herman</first-name>" & _
                               "<last-name>Melville</last-name>" & _
                             "</author>"
    
                'Create the XmlParserContext.
                Dim context As New XmlParserContext(Nothing, Nothing, "", XmlSpace.None)
               
                'Implement the reader. 
                reader = New XmlValidatingReader(xmlFrag, XmlNodeType.Element, context)
                'Add the schema.
                myschema.Add("urn:bookstore-schema", "Books.xsd")
    
                'Set the schema type and add the schema to the reader.
                reader.ValidationType = ValidationType.Schema
                reader.Schemas.Add(myschema)
    
                'Add the handler to raise the validation event.
                AddHandler reader.ValidationEventHandler, AddressOf Me.ValidationEventHandle
    
                While reader.Read
    
                End While
                Console.WriteLine("Completed validating xmlfragment")
    
            Catch XmlExp As XmlException
                Console.WriteLine(XmlExp.Message)
            Catch XmlSchExp As XmlSchemaException
                Console.WriteLine(XmlSchExp.Message)
            Catch GenExp As Exception
                Console.WriteLine(GenExp.Message)
            End Try
        End Sub
    					
  5. 출력 창에 다음 메시지가 표시될 때 유효한 요소 XML 조각이 있는:
    Completed validating xmlfragment
    					
참고: XMLValidatingReader 개체 형식 선언과 최상위 요소를 XML 스키마의 유효성을 검사합니다. 하위 요소 (예: XML 단편은 로컬 간주됩니다. 최상위 요소로 XML 단편을 선언하고 참조가 필요한 수준으로 설정된 경우가 아니면 직접 유효성 검사를 위해 XmlValidatingReader XML 단편을 전달할 수 없습니다.

참조

자세한 내용은 Microsoft 기술 자료 문서를 보려면 해당 자료의 문서를 참조하십시오.
307379방법: DTD, XDR, 또는 XSD에서 Visual C# .NET을 사용하여 XML 문서 유효성 검사
313826.NET Framework는 XML 스키마에서 정보: 로드맵
313651.NET Framework에서 XML 정보: 로드맵
자세한 내용은 다음 MSDN 웹 사이트:
System.Xml 네임스페이스
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxml.asp

XML 웹 서비스
http://msdn.microsoft.com/xml

속성

기술 자료: 317463 - 마지막 검토: 2003년 9월 3일 수요일 - 수정: 2.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
키워드:?
kbmt kbhowtomaster KB317463 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com