XML.NET (1/2) XML 검증, 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ)

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

Parser 의 이해와 Parsing 손계선 강미정 서정은 5 월 25 일 발표자 : 손계선.
XML.
박용수 XML 박용수
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
연결리스트(linked list).
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
MySQL 및 Workbench 설치 데이터 베이스.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Outlook Addin 설치 방법 및 매뉴얼
iframe 사용하기 Chapter 3 Part 2
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
[ 고급소프트웨어공학 ] XML parser: DOM G 김지희.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
KHS JDBC Programming 4 KHS
(Extensible Markup Language)
XML.NET XML 검색, 수정 프로그램 작성 2010 컴퓨터공학실험(Ⅰ)
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
자바 5.0 프로그래밍.
11장. 1차원 배열.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
인터넷응용프로그래밍 JavaScript(Intro).
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
영상처리 실습 인공지능연구실.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
- RSS Reader 페이지 작성 컴퓨터공학실험( I )
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
USN(Ubiquitous Sensor Network)
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
웹디자인
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
CHAP 21. 전화, SMS, 주소록.
데이터 동적 할당 Collection class.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
Introduction to JSP & Servlet
XML.NET (2/2) DB를 이용한 XML 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ)
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
웹 사이트 분석과 설계 [디자인 리서치] 학번: 이름 : 홍지애.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
.Net FrameWork for Web2.0 한석수
CHAP 15. 데이터 스토리지.
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
7 생성자 함수.
6 객체.
Chapter 11. 문서 인쇄 및 파일 형식.
BoardGame 보드게임 따라가기.
20 XMLHttpRequest.
Presentation transcript:

XML.NET (1/2) XML 검증, 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ) 4주 실습강의 XML.NET (1/2) XML 검증, 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ)

Markup Language markup language Markup Language 대표적인 Markup Language 문서 처리를 지원하기 위해 문서에 추가되는 정보 language 정의된 구문과 문법을 따르는 기호의 집합 Markup Language markup 정보를 표현하는 언어 meta data (다른 데이터 집합에 대한 정보)를 전달하는 언어 대표적인 Markup Language SGML (Standard Generalized Markup Language) HTML (Hypertext Markup Language) XML (Extensible Markup Language) XHTML (Extensible Hypertext Markup Language)

HTML (Hypertext Markup Language) 웹 문서를 만들기 위하여 사용하는 프로그래밍 언어 웹에서 전송 네트워크로서 메시지를 송수신하는 역할을 수행 문서의 다른 여러 타입을 정의하기에는 부적절 HTML을 사용해서 표현하기에 부적절한 문서의 예 널리 사용되는 구성 요소로 구성되어있지 않은 문서 ex) 악보 기호, 수학 방정식 책의 목록과 같은 데이터베이스 트리 같은 계층 구조로 정렬하기 원하는 문서

XML 개발 배경 예) HTML 페이지에서 테이블로 표현된 데이터의 정렬 순서 변경 시.

XML 개발 배경 HTML 파일에는 데이터와 표현 논리가 혼재해 있기 때문에 브라우저가 데이터만을 추출해서 처리할 수 없다. 표현 정보가 배제된 데이터만을 전달 할 수 있다. 데이터를 표현 정보로부터 분리해 내는 것이 XML 개발 핵심 이유. 표현 정보는 ‘스타일시트’라는 이름으로 관리.

The design goals for XML XML은 SGML과 호환성이 있어야 한다. XML 문서들을 처리하는 프로그램의 작성이 쉽도록 한다. XML에서의 선택적 특성을 최소화 한다. XML 문서들은 사람이 이해하기 쉽고 명확해야 한다. XML 설계는 신속히 준비되어야 한다. XML의 설계는 간결하고 형식을 갖추도록 한다. XML 문서는 생성하기 쉽도록 한다. XML Markup의 간결함은 중요하게 다루지 않는다. http://www.w3.org/TR/REC-xml/

XML 문서의 구조

XML DOM (Document Object Model) XML 파싱을 위한 객체로는 대표적으로 DOM과 SAX(Simple API for XML)을 들 수 있겠습니다. DOM이 모든 노드를 메모리에 적재하고 자유롭게 탐색/순회하는 스타일인 반면에, SAX를 사용하면 일괄적인 XML파일 처리에 유용하게 사용할 수 있는 스타일을 가지고 있습니다. 규모가 커질수록 SAX가 유리한 반면, 처리/탐색에 있어서 일정부분 DOM보다 자유롭지 못 한 부분이 있습니다. 이번 실험에 사용되는 클래스들은 기본적으로 DOM 객체를 구현한 XmlDocument를 사용하게 될 것입니다.

XPath XPath란 무엇인가? XPath Expression Path Expression Description / XPath는 XML 문서의 part를 정의하기 위한 syntax이다. XPath는 XML 문서 내부를 검색하기 위한 path expression을 사용한다. XPath Expression Path Expression Description / Root node로부터 선택 @ Attribute 선택 /order/date Order의 자식 중 date 선택 /order/[@num =‘312597’] num 속성 값이 312597 인 order 선택 … XPath는 XSLT와 XPointer에 사용될 것을 고려해서 디자인 되었습니다. 첫 번째로는, Xpath를 XML의 각 부분을 가리키는 용도로 사용됩니다. 이에 따라 당연히(?) 문자열이나 숫자, Boolean 등을 다룰 수 있는 기본적인 것들을 함수 형태로 제공합니다. draft 당시에는 가볍고, XML과 상관없는 구문을 선택하였습니다만, 단순히 주소로만 사용하는 가벼운 표현식에서 조금 벗어나면 상당한 어려움을 가질 수도 있습니다. (마치 정규 표현식(Regular Expression)이 그랬던 것 처럼요. 일례로, XPath로 namespace가 정의된 XML 문서를 제대로 조작하려면 상당한 시간을 들여야 합니다. http://msdn2.microsoft.com/en-us/library/ms950779.aspx 를 참고하시면 도움이 될 듯 합니다.) 1.0의 Specification : http://www.w3.org/TR/xpath 지금은 1.0 발표 당시의 개념에서 한 걸음 더 나아가 XPath Data Model/XQuery 의 개념을 도입, XSLT 2.0 및 XQuery내에서 사용할 수 있습니다. 2.0의 Specification : http://www.w3.org/TR/xpath20/ MSDN에서 설명하고 있는 XPath 구문을 참조하면 도움이 될 듯 합니다. http://msdn2.microsoft.com/ko-kr/library/ms256115(VS.80).aspx 한국어 위키백과의 XPath 페이지도 예제를 보기엔 도움이 될 껍니다. http://ko.wikipedia.org/wiki/XPath

XML 문서 만들기(1/2)

XML 문서 만들기(2/2) <?xml version='1.0'?> <!-- File Name: books.xml --> <bookstore> <book genre="autobiography"> <title>The Autobiography of Benjamin Franklin</title> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> <price>8.99</price> </book> <book genre="novel"> <title>The Confidence Man</title> <first-name>Herman</first-name> <last-name>Melville</last-name> <price>11.99</price> </bookstore> 이번 실험에 사용될 XML 파일에는 XPath 접근 편의를 위해, Namespace를 생략하였습니다. XSD(XML Schema Definition)을 통해 Strict한 XML 문서 검증을 위해서는 각각의 엘리먼트에, xmlns=“” 라는 속성을 사용하여 Namespace를 지정해줘야 합니다.

XmlDocument Class 다른 의미로 DOM 객체라고 생각하면 됨 XML 문서에 대한 트리를 만들어 줌 LoadXml – 지정된 문자열에서 XML 문서를 load 함 SelectNodes – Xpath식과 일치하는 node의 목록 선택 CreateElement – 엘리먼트의 생성 XmlDocument XmlNode XmlElement XmlAttribute

XmlNodeList Class XmlDocument.SelectNodes() 를 통해 XmlNodeList 인스턴스가 반환 됨 인스턴스 메서드 / 속성 Count : 노드의 개수를 가리키는 속성 Item(index) : 특정 인덱스에서 노드를 검색 Index는 노드 목록에 대한, 0부터 시작하는 인덱스 이 메서드는 XmlNode를 반환하고, 각각의 XmlNode는 Name과 Value 속성을 가짐 XmlNode는 명시적 타입 캐스팅을 통해 XmlElement 클래스 타입으로 전환 가능 XmlNodeList 클래스에 대한 자세한 설명은 아래의 MSDN을 참조하시길 바랍니다. http://msdn2.microsoft.com/ko-kr/library/system.xml.xmlnodelist(VS.80).aspx XmlElement 클래스에 대한 자세한 설명은 아래의 MSDN을 참조하시길 바랍니다. http://msdn2.microsoft.com/en-us/library/system.xml.xmlelement(VS.80).aspx 개발자의 선택에 따라, XmlDocument.SelectNodes() 말고도, XPathNavigator 클래스와 그 인스턴스 메서드인 Select()를 사용하여 개발 할 수도 있습니다. XmlDocument의 인스턴스에서 메서드 CreateNavigator() 를 사용하면, 해당 XML Document와 연결된 XPathNavigator의 인스턴스를 얻을 수 있습니다. XPathNavigator에 대한 자세한 설명은 아래의 두 링크를 참조하면 도움이 될 것입니다. MS KB308343(한국어): http://support.microsoft.com/kb/308343 최영관 – 소설같은 C# 14장: http://www.jabook.org/jabook/csharp/CsharpLecture14%5C10000_10000_240000__10000_10000_240000.html

System.IO Namespace: Stream* Classes if(!IsPostBack) { System.IO.StreamReader sr; sr = new System.IO.StreamReader(Server.MapPath("books.xsd"), System.Text.Encoding.UTF8); TextBoxDtd.Text = sr.ReadToEnd(); sr.Close(); sr = new System.IO.StreamReader(Server.MapPath("books.xml"), System.Text.Encoding.UTF8); TextBoxXml.Text = sr.ReadToEnd(); } IsPostBack 클라이언트에서 이 페이지가 처음으로 로드되어 엑세스 되는지의 여부를 나타내는 값 StreamReader 특정 인코딩의 바이트 스트림에서 문자를 읽는 TextReader

Implementation Guidelines Element / Attribute 추가, 삭제 버튼을 누를 경우 처리 XPath 구문으로 추가할 노드의 위치를 파악하고 추가는 AppendChild() / SetAttribute() 메서드로? XPath 구문으로 삭제할 노드의 위치를 파악. 여러 개의 노드가 선택되면 어떻게 해야 할 것인가? XPath를 입력 하여 검색 버튼을 누를 경우 출력 XmlDocument.SelectNodes() Method 여러 개의 노드가 선택될 경우 어떻게 표현할 것인가? 순차로 보여줄 것인가? 허용하지 않을 것인가? 페이지가 화면에 표시 될 시점에 해야 할 일 Page_Load() 메서드 세부구현 XmlDocument 내의 문서가 바뀌면 어떻게 표현할 것인가?