??검증 기능이 있는 브라우저
??XmlValidatingReader 클래스는 XmlReader 클래스를 구현합니다. 이 클래스는 여러 유형의 XML 검증(DTD, XDR(XML-Data Reduced) 스키마, XSD, DTD 및 XSD는 둘 다 W3C에서 공식적으로 권장합니다. XDR은 Microsoft가 초기에 XML 아키텍처를 처리하기 위해 사용했던 형식입니다.
XmlVlidatingReader 클래스를 사용하여 XML 문서 및 XML 조각의 유효성을 검사할 수 있습니다. XmlValidatingReader 클래스는 XML 브라우저에서 작동합니다. 이는 XMLTextReader 클래스의 일반적인 인스턴스입니다. XMLTextReade는 문서의 노드를 읽는 데 사용되지만 XmlVlidatingReader는 필요한 유효성 검사 유형에 따라 각 XML 블록의 유효성을 검사합니다.
??XmlVlidatingReader 클래스는 XML 브라우저에 필요한 매우 작은 기능 하위 집합만 구현합니다. 이 클래스는 항상 기존 XML 브라우저와 함께 작동하며 메서드와 속성을 감독합니다. 이 클래스의 구조를 자세히 살펴보면 분명히 기존 텍스트 브라우저에 의존한다는 것을 알 수 있습니다. 유효성 검사 기능이 있는 XML 브라우저는 파일이나 URL에서 직접 직렬화할 수 없습니다. 이 클래스의 구조 함수 목록은 다음과 같습니다.
public XmlValidatingReader(XmlReader);
public XmlValidatingReader(Stream, XmlNodeType, XmlParserContext)
public XmlValidatingReader(string , XmlNodeType, XmlParserContext) );
?? 유효성 검사 기능이 있는 XML 브라우저는 모든 XML 조각을 구문 분석할 수 있습니다. XML 조각은 문자열이나 스트림을 통해 제공됩니다.
??XmlVlidatingReader 클래스는 다른 리더 클래스에 비해 크게 변경된 메서드가 거의 없습니다. 또한 Read의 경우 Skip 및 ReadTypedValue 메서드가 있습니다. Skip 메서드는 현재 노드의 모든 하위 노드를 건너뛰고(형식이 잘못된 XML 텍스트는 건너뛸 수 없으며 매우 유용한 알고리즘입니다) Skip 메서드는 건너뛴 콘텐츠도 확인합니다. ReadTypedValue 메서드는 지정된 XSD(XML 스키마) 유형에 해당하는 CLR 유형을 반환합니다. 이 메서드는 XSD 유형에 해당하는 CLR 유형을 찾으면 CLR 유형 이름을 반환합니다. 찾을 수 없으면 노드의 값이 문자열 값으로 반환됩니다.
??검증 기능이 있는 XML 브라우저는 이름 그대로 현재 노드의 구조가 현재 스키마에 맞는지 검증하는 노드 기반 브라우저입니다. 유효성 검사는 점진적입니다. 문서가 유효한지 여부를 나타내는 부울 값을 반환하는 메서드가 없습니다. 일반적으로 Read 메서드를 사용하여 입력 XML 문서를 읽습니다. 실제로 인증을 통해 브라우저를 사용하여 XML 문서를 읽을 수도 있습니다. 각 단계에서 현재 방문한 노드의 구조가 지정된 스키마와 일치하는지 여부를 확인하고 일치하지 않으면 예외가 발생합니다. 그림 4는 파일 이름을 입력하고 최종적으로 확인 결과를 출력하는 명령줄이 있는 콘솔 애플리케이션입니다.
그림 4 콘솔 앱
System.Xml 사용
System.Xml.Schema 사용; 🎜>
class MyXmlValidApp
{
public MyXmlValidApp(String fileName)
{
try {
Validate(fileName) ) );
catch (예외 e) {
Console.WriteLine('Error:t{0}', e.Message); 🎜 >Console.WriteLine('예외 발생: {0}',
e.GetType().ToString())
}
}
private void Validate(String fileName)
{
XmlTextReader xtr = new XmlTextReader(fileName);
XmlValidatingReader vreader = new XmlValidatingReader(xtr ) ;
vreader.ValidationType = ValidationType.Auto;
vreader.ValidationEventHandler = new
ValidationEventHandler(this.ValidationEventHandle); 🎜 >vreader.Read();
vreader.MoveToContent()
while (vreader.Read()) {}
xtr.Close();
vreader.Close();
}
public void ValidationEventHandle(객체 전송자,
ValidationEventArgs args)
{
Console.Write('검증 오류: ' args.Message 'rn')
}
public static void Main(String[] args)
{
MyXmlValidApp o = new MyXmlValidApp(args[0])
return; 🎜 >
}
}
위 내용은 .NET Framework에서 XML 데이터를 쉽게 처리하는 내용(3-1)입니다. PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!