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

Slides:



Advertisements
Similar presentations
KB 스타 경제 · 금융교실 나는 용돈관리왕. KB 스타 경제 · 금융교실 나는 용돈관리왕 선생님은 ? KB 2  이름 : 김국민  별명 : 스타 왕자  소속 : KB 국민은행 소비자 보호담 당 ( 간단한 자기 소개 : 교육 대상이 흥미 를 가질 수 있는 이미지와.
Advertisements

JSP 정리 레퍼런스: JSP 2.1 웹 프로그래밍 (최범균, 가메출판사). 목차 1. Directive - 인코딩 - 오류처리 2. Implicit Object - 쿠키/세션 3. Action Tag 4. JDBC/DBCP 프로그래밍, 파일업로드 5. Expression.
홈페이지 만들기. Cyber 공간에서 자신이 갖고 있는 정보 나 관심사를 다른 사람들에게 체계적으 로 공개하거나, 시간과 장소에 구애 받지 않고 정보화 시대에 발맞춰 자신을 어필 할 수 있음.
01 학습 내용 : 준비학습 : 인터넷 과 웹 01 장. 인터넷 이해하기 02 장. 홈페이지를 만들기 전에.
Information Retrieval (Chapter 6: 텍스트와 멀티미디어 언어)
전자상거래 원론: 제18장 전자상거래 수행전략 및 구현.
웹 멀티미디어 컨텐츠 검색 방법 신은정.
Chapter 2 정보시스템 아키텍처 (IS Architecture)
Vision System Lab, Sang-Hun Han
박용수 XML 박용수
웹 페이지.
HTML5 웹 프로그래밍 입문 (개정판) 1장. 인터넷과 웹환경의 발전.
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조
XSD (XML Schema Definition)
XML 응용 프로그래밍 3장 XML 문서 제작 기본
원가와 구매관리 원가의 이해 식자재 구매과정 검수절차 식음자재 확인 반품 보고서 작성 검수관리 입고관리 출고관리 재고관리
문서 PARSONS/OJA 문서, 워크시트, 데이터베이스 Page 1 1.
Ⅵ. 전자문서 K ILC에서의 전자문서 전자문서 표준화 개념 3. 전자문서 개발방향 4. 전자문서 표준화 대상범위 및 절차
자기소개서 작성법.
10장. 웹 서비스 공격 (Attacking Web Service)
컴퓨터 소프트웨어.
Chapter 05 SQL 인젝션 공격.
공공정보와 Linked Data 공공데이터의 LOD 활용
Overview : XML과 Database
웹 서비스 (Web Services).
Information Technology
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
안드로이드 기반에서 MapServer를 이용한 지도 서비스
DB표준화 작업의 현황과 과제 Presentation
제 8장. 멀티미디어 데이터베이스 및 정보검색 시스템
HTML5 입문 인공지능 연구실.
웹 폼 이벤트 이벤트와 이벤트 처리기 이벤트(event)는 사전적 의미로 ‘사건, ‘일어난 일’, ‘행사’ 등의 뜻을 가지며 .NET 응용 프로그램에서의 이벤트는 코드로 응답하거나 처리할 수 있는 동작 자체를 의미합니다. ASP.NET의 서버 컨트롤과 웹 폼은 여러 상황에.
1. 시멘틱웹(Semantic Web) Preview 항목 상세내역 개요 기출여부 관련KeyWord 추천사이트
ㅎㅎ MS-SQL서버 2000과 XML MS-SQL 서버 2000과 XML 활용 HTTP를 이용한 XML 데이터 접근
XML DOM (Document Object Model)
강의 보조자료 & Homework #2 - 로그인과 이미지 카운터 만들기 -
제 7 장 원격교육의 개발 기술 7주 2강.
XML XSLT.
X M L 컴퓨터공학과 윤 홍 국.
웹 서비스 (Web Services).
XML.NET (1/2) XML 검증, 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ)
SOAP 클라이언트 개발 Guide
낮과 밤 알아보기 슬기로운 생활 2학년 1학기 4. 빛과 그림자>낮과 밤( 4/8 )
The Semantic Web 학 번 발 표 자 이 한 국.
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
JSP 게시판 구현.
II. XML과 Database 연동 [Beginning XML, 제13장]
제 8 장 객체지향 데이타베이스와 데이타베이스의 새로운 응용 분야
인터넷응용프로그래밍 JavaScript(array).
SMIL.
명품 웹 프로그래밍.
[INA470] Java Programming Youn-Hee Han
LINQ to XML 정보통신 공학부 어현승.
네트워크 설정 방법 (측정값데이터수집설정)
Introduction to Semantic Web 시맨틱 웹의 개요
XML-II (eXtensible Markup Language) DTD/DOM
리스너와 서블릿 필터 초기화 파라미터 관리 개념을 이해한다 리스너 구조를 이해하고 프로그래밍 기법을 배운다
12장 하이퍼텍스트와 하이퍼미디어 12.1 간략한 역사 12.2 하이퍼텍스트의 특징 12.3 브라우징과 탐색
KB스타 경제·금융교실 은행에 가요.
교육방법 및 평가방법 안내.
제6장 소프트웨어와 정보시스템 김진수
05 ASP.NET 2.0 페이지 및 응용 프로그램 구조 웹 폼(Web Form) 웹 폼 이벤트
기업지원 단일창구 서비스 (G4B)구축 3차년도 사업
무용의 특성 및 종류 체 육 1 학년 7. 무용 > (1) 무용의 특성 및 종류 > 1) 무용의 특성 (1/6)
5주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
HTML 1강 웹의 개념 이해 홈페이지 제작교실 다음카페 – 아이시 - 이시형 -.
웹 스크래핑.
ER-관계 사상에 의한 관계 데이터베이스 설계
KB스타 경제·금융교실 화폐가 태어났어요.
Presentation transcript:

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

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

목표 프로그램 결과 화면 Textbox_XML

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

Page_Load 함수 구현

XML Rendering 함수 구현 (1/2) .aspx 파일의 “소스”, Textbox_XML에 OnPreRender 항목 추가

XML Rendering 함수 구현 (2/2) .cs 파일에 Xml_render 함수 작성