반응형

전체 글 2934

[XML.NET] 21. DOM 모델 개요

DOM 모델 개요 .NET Framework에서는 문서 기반으로 XML을 처리할 수 있는 DOM 모델을 제공하고 있습니다. DOM 모델은 XML 데이터를 프로그램 상의 메모리에 문서 형태로 표현한 것입니다. XmlReader 개체로 XML 데이터를 읽을 때는 메모리에 캐시하지 않고 정방향으로만 이동하면서 읽습니다. 하지만 DOM 모델에서는 메모리에 데이터를 캐시하기 때문에 효과적으로 읽고 조작하고 수정할 수 있습니다. DOM 모델의 형식들 DOM모델에서는 XML 문서를 노드 트리 형태로 메모리에 캐시합니다. 이를 위해 다양한 노드 형식을 제공하고 있는데 이들의 형식은 W3C 표준에 맞게 제공하고 있습니다. 다음은 DOM 모델로 XML 문서를 메모리에 캐시할 때 사용하는 대표적인 노드 형식들입니다. XML..

[XML.NET] 20. XmlSchema 클래스로 스키마 작성 및 판독

XmlSchema 클래스로 스키마 작성 및 판독 XML 스키마는 표준 XML 문서 구조의 정의입니다. 이를 이용하면 유효성 검사를 할 수 있고 판독하는 등의 강력한 기능을 사용할 수 있습니다. .NET Framework 에서는 스키마를 만들거나 유효성을 검사할 수 있는 스키마 개체 모델(SOM) API를 제공하고 있습니다. XML 스키마 파일을 작성할 때는 XmlSchema 클래스를 비롯하여 다양한 클래스를 사용합니다. 프로그램 메모리에 XML 스키마를 만들 때는 XmlSchema 개체를 생성합니다. 그리고 XML 스키마 개체에 스키마 요소를 표현하기 위해 XmlSchemaElement 개체를 만들어 원하는 내용으로 설정하고 XmlSchema 개체의 멤버 Items 컬렉션 속성에 추가합니다. XmlSch..

[XML.NET] 19. XmlReader 클래스 ReadInnerXml, ReadOuterXml

XmlReader 클래스 ReadInnerXml, ReadOuterXml XmlReader 클래스에서는 요소 읽기와 특성 읽기 외에도 XML 데이터 소스에 있는 다양한 내용을 읽기 위한 메서드와 속성을 제공하고 있습니다. 여기에서는 이러한 부가적인 기능과 속성을 개괄적으로 소개할게요. 현재 노드의 내용을 문자열로 반환하는 ReadString 메서드를 제공하고 있습니다. ReadString 메서드를 이용하면 새로운 태그가 나타나기 전의 내용을 문자열 형태로 반환합니다.public string ReadString ( ); if (reader.IsStartElement("book")){ Console.WriteLine(reader.ReadString());} 태그 내부에 있는 모든 내용을 문자열로 읽을 때는 ..

[XML.NET] 18.XmlReader 개체로 데이터 분석(Attribute 읽기)

XmlReader 개체로 데이터 분석(Attribute 읽기) XmlReader 클래스는 요소의 특성을 읽기 위해 6가지 메서드와 3가지 속성과 인덱서을 제공합니다. 먼저 이들의 역할과 원형을 살펴봅시다. 특성 값을 얻어올 때 GetAttribute 메서드를 이용합니다.public string GetAttribute (int i); //i는 인덱스public string GetAttribute (string name); public string GetAttribute (string name, string ns_uri); XmlReader 개체의 현재 위치를 지정한 특성으로 이동할 때 MoveToAttribute 메서드를 이용합니다.public void MoveToAttribute (int i); //i는..

[XML.NET] 17. XmlReader 개체로 데이터 분석(요소 읽기)

XmlReader 개체로 데이터 분석(요소 읽기) XmlReader 클래스에서는 요소 읽기 작업에 관한 6가지 메서드와 1가지 속성을 제공하고 있습니다. 먼저 이들의 역할과 원형을 간략히 살펴봅시다. 현재 노드가 시작 요소인지 확인할 때는 IsStartElement 메서드를 사용합니다.public bool IsStartElement ();public bool IsStartElement (string name);public bool IsStartElement (string local_name, string ns); 현재 노드가 시작 요소일 때 요소를 읽기 위해 ReadStartElement 메서드를 제공합니다.public void ReadStartElement ();public void ReadStartE..

[XML.NET] 16. XmlReader 개체로 데이터 분석(노드 형식 알아내기)

XmlReader 개체로 데이터 분석(노드 형식 알아내기) XmlReader 개체는 정방향으로 XML 데이터 소스를 분석하기 위함입니다. 구조화되어 있는 XML 데이터 소스를 정방향으로 읽기 작업을 하여 원하는 프로그램 데이터로 가공하기 위해서는 현재 위치의 노드가 어떠한 형식인지 알 수 있어야 합니다. 그리고 현재 노드 형식에 따라 요소 읽기와 특성 읽기, 값 읽기 등을 할 수 있어야 할 것입니다. 현재 위치의 노드 형식 알아내기 XmlReader 개체는 정방향으로만 읽기 작업할 수 있습니다. 따라서 XmlReader 개체로 Read 메서드를 호출하면 다음 노드로 위치가 변합니다. XML 데이터는 구조적인 데이터이므로 현재 분석한 노드가 무엇인지에 따라 처리를 다르게 해야 할 때가 많습니다. XmlRe..

[XML.NET] 15. 유효성 검사 설정 XmlReader 개체 만들기

유효성 검사 설정 XmlReader 개체 만들기 이번에는 XmlSchemaSet 개체로 유효성 검사를 할 수 있게 XmlReader 개체를 생성하는 방법을 살펴볼게요. 예제에서는 XmlSchemaSet 개체를 생성하여 이미 작성한 스키마 파일 "data.xsd"의 내용을 XmlSchemaSet에 추가하고 XmlReaderSettings 개체의 Schemas 속성에 설정합니다. 그리고 XmlReader 개체를 이용하여 데이터 소스에 유효성이 위배한 부분을 발견할 때 처리하기 위한 이벤트 핸들러를 추가합니다. 이와 같은 작업을 한 후에 XmlReaderSettings 개체를 전달하여 XmlReader 개체를 생성하면 이후에 읽기 작업 등에서 데이터 소스에 유효성이 위배한 부분을 발견하면 설정한 이벤트 핸들러..

[XML.NET] 14. 외부 자원을 소스로 하는 XmlReader 개체 만들기

외부 자원을 소스로 하는 XmlReader 개체 만들기 이번에는 외부 자원을 소스로 하는 XmlReader 개체를 만드는 예제를 살펴봅시다. 여기에서는 제가 운영하는 언제나 휴일 티스토리 rss("http://ehclub.co.kr/rss")를 소스로 할게요. 외부 자원을 소스로 할 때는 XmlUrlResolver 개체를 생성하여 XmlReaderSettings 개체의 XmlResolver 속성에 설정하고 XmlReader 개체를 생성할 때 XmlReaderSettings 개체를 전달하면 됩니다.

[XML.NET] 13. XmlReader 개체 만들기 예제

XmlReader 개체 만들기 예제 이번에는 간단한 예제를 통해 XmlReader 개체를 만드는 방법을 살펴봅시다. 먼저 12가지 Create 메서드 중에 4가지 방법을 사용하는 예를 보여드리고 난 후에 외부 데이터를 원본으로 XmlReader 개체를 생성하는 예제를 보여드릴게요. 그리고 마지막으로 XmlSchemaSet 개체를 이용하여 유효성 검사를 하는 예제를 보여드릴게요. 먼저 예제에 사용할 원본 XML 파일인 "data.xml"의 내용을 살펴봅시다.

반응형