데이터 타입 이해 1. 컴플렉스 타입 2. 컴플렉스 타입의 확장 및 제한.

Slides:



Advertisements
Similar presentations
XML with JAVA. chapter 07 : chapter 07 : XML 스키마 Ⅰ XML 스키마 Ⅰ.
Advertisements

간호독학사 설명회 v 홍순성. 프로젝트 명 프로젝트 기간 담당 PM 작성일 /Ver. 화면 ID 페이지 경로 작성자홍순성 Description 2 업계유일 ! X 1 메인 플로팅 배너 제작 /8( 토 ) 10:30 연세대학교.
지식정보학부 김선호 송승재 신동욱 정승홍 정충현
XML 스키마 (XML Schema) 인천대학교 컴퓨터공학과 채 진 석
XHTML Basic 제 13 장 1. XHTML Basic의 개요 2. XHTML Basic 기본 문법 3. 표 만들기
고교 자유학년제 오디세이학교 교육과정 및 학생 모집.
목 차 1 추진 배경 및 목적 2 기본 방향 3 추진 경과 4 시스템 메뉴 5 포트폴리오 6 향후 추진 계획.
진지한씨와 유령선생 언론영상학과 장미선.
국가도서관통계시스템 수치입력자 매뉴얼 이의신청 방법 Version. 1.0.
eXtensible Markup Language
박용수 XML 박용수
XML: Standard Meta-Markup Language
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조
XML 스키마 ㅎㅎ XML 스키마 개요 XML 스키마 사용법 [실습] XML 스키마 활용.
XSD (XML Schema Definition)
XML 응용 프로그래밍 3장 XML 문서 제작 기본
기말 프로젝트.
1 HTML5 개요.
Part 12 구조체와 공용체 ©우균, 창병모 ©우균, 창병모.
2 서블릿의 기초.
Overview : XML과 Database
1 PROJECT TITLE 기획 PAGE NO. 웹 페이지 구성 화 면 번호 화 면 설 명 연 결 화 면 L1 L4 L7
Chapter 06 XSS 공격.
관계 데이터 모델과 제약조건 개념, 특성, 키, 무결성 제약조건.
DB표준화 작업의 현황과 과제 Presentation
HTML5 입문 인공지능 연구실.
화면(UI) 기반 도메인모델 작성 2014년 8월.
XML DOM (Document Object Model)
강의 보조자료 & Homework #2 - 로그인과 이미지 카운터 만들기 -
XML XSLT.
X M L 컴퓨터공학과 윤 홍 국.
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
WSDL 전산게임학과 김헌철.
Booksinprint.com (BIP 2.0) 한글 매뉴얼
XML.NET XML 검색, 수정 프로그램 작성 2010 컴퓨터공학실험(Ⅰ)
09장. 재미있게 활용할 수 있는 태그 <EMBED> 태그로 멀티미디어 홈페이지 만들기
BIZSIREN 실명확인서비스 개발 가이드 서울신용평가정보㈜ 신용조회부 (TEL , FAX )
10장. 자바빈(JavaBean) 이 장에서 배울 내용 : 화면에 표시를 담당하는 JSP페이지와 실제프로그램을 처리하는 로직을 분리하는 것에 대해서 학습한다. 하나의 JSP페이지 안에 디자인부와 로직부가 혼재하게 되면 프로그램의 협업과 유지보수가 어렵다. 자바빈은 로직을.
이장에서 배울 내용 : 화면에 표시를 담당하는 JSP페이지와 실제프로그램을 처리하는 로직을 분리하는 것에 대해서 학습한다
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
흑석 뉴타운 답사 행복한 부자교실 12기 5조
III. 순수관광 목적 방문지역별 여행 실태 서울 부산 대구 인천 광주 대전 울산 경기 강원 충북 충남 전북 전남 경북 경남
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
소프트웨어 공학 (Software Engineering)
EndNote 정기교육 - STEP 1(2차)-
SMIL.
Booksinprint.com (BIP 2.0) 한글 매뉴얼
III. 순수관광 목적 방문지역별 여행 실태 서울 부산 대구 인천 광주 대전 울산 경기 강원 충북 충남 전북 전남 경북 경남
사용자 매뉴얼 Version 1.0 대금지급(외주)
XML-II (eXtensible Markup Language) DTD/DOM
자바 5.0 프로그래밍.
C 프로그래밍 기초.
III. 순수관광 목적 방문지역별 여행 실태 서울 부산 대구 인천 광주 대전 울산 경기 강원 충북 충남 전북 전남 경북 경남
사회생활과 준법의식 사회(일반사회) 중학교 2학년 2학기 Ⅶ. 사회생활과 법규범
3D 프린팅 프로그래밍 04 – 도형 회전 (하트 열쇠고리 만들기) 강사: 김영준 목원대학교 겸임교수.
국가 내 불평등 현상과 해결방안 본 연구물은 학교 수업을 위해 개발된 것으로 교육 이외의 목적으로 사용될 수 없습니다.
<VLSC Media Download>
2013년도 상반기 고객만족도 조사 결과 보고서
2013년도 하반기 고객만족도 조사 결과 보고서
11 상위 계층.
III. 순수관광 목적 방문지역별 여행 실태 서울 부산 대구 인천 광주 대전 울산 경기 강원 충북 충남 전북 전남 경북 경남
지속가능 도시와 공동체 본 연구물은 학교 수업을 위해 개발된 것으로 교육 이외의 목적으로 사용될 수 없습니다.
북한학 과목소개 최 장 옥 교 수 연평도 앞 월래도 시찰.
EndNote.
ㅎㅎ DTD DTD 개념 DTD 문법 [실습] DTD 활용.
비축사업 전자계약시스템 도입 용역 사용자매뉴얼(업체담당자용) Version 1.0.
근대 19세기 서양 복식.
Presentation transcript:

데이터 타입 이해 1. 컴플렉스 타입 2. 컴플렉스 타입의 확장 및 제한

1. 컴플렉스 타입 1-1 컴플렉스 타입 용도 컴플렉스 타입(complexType)은 속성이나 자식 엘리먼트를 가지는 엘리먼트 선언에 필요한 타입이다. 1-2 컴플렉스 타입 문법 컴플렉스 타입을 정의하기 위해서는 complexType 엘리먼트를 사용한다. (1) 글로벌 컴플렉스 타입 정의 문법 루트 엘리먼트인 schema 엘리먼트의 자식 엘리먼트로 컴플렉스 타입을 정의할 경우 글로벌 컴플렉스 타입 정의가 된다. 글로벌 컴플렉스 타입 정의는 엘리먼트 선언시 type 속성값에서 컴플렉스 타입 name으로 참조 적용 된다. 문법 <complexType name=”컴플렉스 타입 이름”> ~~~ </complexType>

1. 컴플렉스 타입 글로벌 컴플렉스 타입의 정의 위치 및 적용 방법. 스키마 문서 <?xml version="1.0" encoding="euc-kr"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name=”ctTest”> ~~~ </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name=”엘리먼트명” type=”ctTest”/>

1. 컴플렉스 타입 (2) 로컬 컴플렉스 타입 정의 문법 엘리먼트 선언 내부에서 정의되는 컴플렉스 타입. 로컬 컴플렉스 타입은 name 속성이 없으므로 다른 엘리먼트 선언에서 참조 적용될 수 없고 해당 엘리먼트 선언에만 적용된다. 문법 <complexType> ~~~ </ complexType> 스키마문서 <?xml version="1.0" encoding="euc-kr"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name=”test”> <!-- 로컬 컴플렉스 타입 적용 --> <xsd: complexType> </xsd: complexType> </xsd:element>

1. 컴플렉스 타입 1-3 순차적으로 자식 엘리먼트들이 오는 컴플렉스 타입 정의 complexType의 자식 엘리먼트로 sequence 엘리먼트를 사용하여 정의한다. 주의 사항 : 자식 엘리먼트가 하나만 오더라도 sequence 엘리먼트를 사용해야 한다. 스키마 문서 <!-- 루트 엘리먼트 선언 --> <xsd:element name="booklist"> <!-- 로컬 컴플렉트 타입 정의 --> <xsd:complexType> <xsd:sequence> <xsd:element name="book" type="ctBook" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name="ctBook"> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> XML 문서 <book> <title>XML Programming</title> <author>신민철</author> <publisher>프리렉</publisher> </book>

1. 컴플렉스 타입 1-4 선택적으로 자식 엘리먼트들을 사용할 수 있는 컴플렉스 타입 정의 문법(1) complexType 엘리먼트 및 sequence 엘리먼트에서 choice 엘리먼트를 사용하여 엘리먼트를 선언하게 되면 선택적으로 엘리먼트를 사용할 수 있게 된다. 문법(1) <complexType name=”컴플렉스 타입 이름”> <choice minOccurs=”최소선택횟수” maxOccurs=”최대선택횟수”> 엘리먼트 선언들 </choice> </complexType> 문법(2) <sequence> <choice minOccurs=”최소선택횟수” maxOccurs=”최대선택횟수”> </sequence> 스키마 문서 <xsd:choice maxOccurs="unbounded"> <xsd:element name="author" type="xsd:string"/> <xsd:element name="writer" type="xsd:string"/> </xsd:choice> < 실습 > C6_1302.xsd C6_1302.xml

1. 컴플렉스 타입 1-5 자식 엘리먼트와 속성을 동시에 갖는 컴플렉스 타입 정의 스키마 문서 complexType 엘리먼트에서 attribute 엘리먼트가 선언되는 위치는 sequence 엘리먼트 또는 choice 엘리먼트 다음이다. 스키마 문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name=”ctBook”> <xsd:sequence> <xsd:element name=”title” type=”xsd:string”/> <xsd:element name=”author” type=”xsd:string”/> <xsd:element name=”publisher” type=”xsd:string”/> <xsd:element name=”price” type=”xsd:int”/> <!--속성 선언--> <xsd:attribute name=”id” type=”xsd:ID”/> <xsd:attribute name=”kind” type=”xsd:string”/> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name=”book” type=”ctBook” maxOccurs=”unbounded”/> XML 문서 <book id=”b1” kind=”computer”> <title>XML And Java</title> <author>신민철</author> <publisher>프리렉</publisher> <price>25000</price> </book>

1. 컴플렉스 타입 1-6 속성만 갖는 컴플렉스 타입 정의 빈(empty) 엘리먼트를 선언할 때에도 컴플렉스 타입이 사용된다. 문법 <complexType name=”컴플렉스 타입 이름”> 속성 선언들 </complexType> 스키마문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name=”ctImg”> <attribute name=”src” type=”xsd:anyURI” use=”required”/> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name=”img” type=”ctImg” minOccurs=“0”/> XML문서 <img src=”/images/background.gif”/>

1. 컴플렉스 타입 1-7 데이터 및 속성을 동시에 갖는 컴플렉스 타입 정의 문법 속성은 있지만, 자식 엘리먼트 없이 심플 타입 데이터만 오는 엘리먼트 선언하기. 문법 <complexType name=”컴플렉스 타입 이름”> <simpleContent base=”데이터 타입”> <extension> 속성 선언 </extension> </simpleContent> </complexType> 스키마문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name=”ctPrice”> <xsd:simpleContent> <xsd:extension base=”xsd:int”> <xsd:attribute name=”unit” type=”xsd:string”/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name=”price” type=”ctPrice” /> XML문서 <price unit=”원”>25000</price> 심플 타입 컨텐트를 갖는 컴플렉스 타입

2. 컴플렉스 타입의 확장 및 제한 2-1 컴플렉스 타입의 확장 및 제한의 의미 컴플렉스 타입은 다른 컴플렉스 타입을 확장 및 제한할 수 있도록 상속의 개념을 적용할 수 있을 뿐만 아니라, 상속된 타입의 다형성(polymorphism)을 이용할 수 있는 방법도 제공하고 있다. - 컴플렉스 타입의 확장 : 기반이 되는 컴플렉스 타입에 속성이나 엘리먼트를 추가하는 것. - 컴플렉스 타입의 제한 : 기반이 되는 컴플렉스 데이터값 및 속성값의 범위를 제한하거나 엘리먼 트 일부를 제거하는 것. 2-2 심플 타입 컨텐트를 갖는 컴플렉스 타입을 확장 심플 타입 컨텐트를 갖는 컴플렉스 타입은 데이터와 속성을 동시에 갖는 컴플렉스 타입을 말한다. - 심플 타입 컨텐트를 갖는 컴플렉스 타입의 확장 : 속성을 추가하여 새로운 심플 타입 컨텐트를 갖는 컴플렉스 타입을 정의하는 것.

2. 컴플렉스 타입의 확장 및 제한 심플 타입 컨텐트를 갖는 컴플렉스 타입을 확장하는 컴플렉스 타입을 정의하는 문법. 문법 <xsd:complexType name="컴플렉스 타입 이름"> <xsd:simpleContent> <xsd:extension base="확장할 컴플렉스 타입 이름"> 엘리먼트 선언들 </xsd:extension> </xsd:simpleContent> </xsd:complexType> 주의 사항 : base 속성값으로 심플 타입 컨텐트를 갖지 않는, 즉 자식 엘리먼트나 속성만 가지고 있는 컴플렉스 타입 이름은 올 수 없다.

2. 컴플렉스 타입의 확장 및 제한 심플 타입 컨텐트를 갖는 컴플렉스 타입을 확장하는 컴플렉스 타입 예제. 스키마 문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name="ctPrice2"> <!-- 심플 컨텐트를 갖는 컴플렉스 타입 --> <xsd:simpleContent> <!-- 심플 컨텐트를 갖는 컴플렉스 타입인 ctPrice를 확장 --> <xsd:extension base="ctPrice"> <xsd:attribute name="card" type="xsd:boolean"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name="price" type="ctPrice2"/> XML <price unit="원" card="true">25000</price>

2. 컴플렉스 타입의 확장 및 제한 2-3 심플 타입 컨텐트를 갖는 컴플렉스 타입을 제한 simpleContent 엘리먼트의 자식 엘리먼트인 restriction 엘리먼트의 base 속성값에 심플 컨텐트를 갖는 컴플렉스 타입의 이름이 올 수 있다. 이 경우 해당 컴플렉스 타입을 제한하는 새로운 심플 타입 컨텐트를 갖는 컴플렉스 타입을 만들 수 있다. 주로 제한되는 내용은 기반이 되는 컴플렉스 타입의 데이터값의 범위이다. 문법 <xsd:complexType name="컴플렉스 타입 이름"> <xsd:simpleContent> <xsd:restriction base="제한할 컴플렉스 타입 이름"> 패싯 엘리먼트들 </xsd:restriction> </xsd:simpleContent> </xsd:complexType>

2. 컴플렉스 타입의 확장 및 제한 restriction 엘리먼트의 base 속성값으로 심플 타입 컨텐트를 갖지 않는, 즉 자식 엘리먼트나 속성만 가지고 있는 컴플렉스 타입은 올 수가 없다. 패싯(facet) 엘리먼트란 제한할 내용을 담고 있는 엘리먼트를 뜻한다. < 패싯 엘리먼트로 올 수 있는 것 > 패싯이름 설명 minExclusive 포함이 되지 않는 하한값 지정 minInclusive 포함이 되는 하한값 지정 maxExclusive 포함이 되지 않는 상한값 지정 maxInclusive 포함이 되는 상한값 지정 totalDigits 수를 이루는 숫자(digit)의 수 지정 fractionDigits 소수부를 이루는 숫자(digit)의 수 지정 length 문자열의 길이 또는 리스트 항목의 수 지정 minLength 문자열의 최소 길이 또는 리스트 항목의 최소수 지정 maxLength 문자열의 최대 길이 또는 리스트 항목의 최대수 지정 enumeration 이뉴머레이션 타입이 가질 수 있는 값 지정 pattern 문자 데이터의 포맷을 나타내는 정규식 지정

2. 컴플렉스 타입의 확장 및 제한 패싯 엘리먼트의 사용 문법 및 사용 예 문법 <패싯이름 value=”값”/> 스키마문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name="ctPrice2"> <!-- 심플 컨텐트를 갖는 컴플렉스 타입 --> <xsd:simpleContent> <!-- 심플 컨텐트를 갖는 컴플렉스 타입인 ctPrice를 제한 --> <xsd:restriction base="ctPrice"> <xsd:minInclusive value="1000"/> <xsd:maxInclusive value="100000"/> </xsd:restriction> </xsd:simpleContent> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name="price" type="ctPrice2"/> XML문서 <price unit="원" card="true">100000</price>

2. 컴플렉스 타입의 확장 및 제한 2-4 자식 엘리먼트와 속성을 갖는 컴플렉스 타입의 확장 자식 엘리먼트와 속성을 가지고 있는 기존의 컴플렉스 타입에 자식 엘리먼트들과 속성들을 추가하여 새로운 컴플렉스 타입을 정의할 수 있다. 문법 <xsd:complexType name="컴플렉스 타입 이름"> <xsd:complexContent> <xsd:extension base="확장할 컴플렉스 타입 이름"> <xsd:sequence> 추가할 엘리먼트 선언들 </xsd:sequence> 추가할 속성 선언들 </xsd:extension> </xsd:complexContent> </xsd:complexType> 주의 사항 : base 속성값으로 심플 타입 컨텐트를 갖지 않는, 즉 자식 엘리먼트 및 속성만 가지고 있는 컴플렉스 타입 이름만 올 수 있다.

2. 컴플렉스 타입의 확장 및 제한 기존의 컴플렉스 타입에 속성 및 자식 엘리먼트를 추가 확장하는 새로운 컴플렉스 타입 정의 예. 스키마문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name="ctBook2"> <xsd:complexContent> <xsd:extension base="ctBook"> <xsd:sequence> <xsd:element name="publisher" type="xsd:string"/> <xsd:element name="price" type="xsd:int"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> <xsd:attribute name="kind" type="xsd:string"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name="book" type="ctBook2" maxOccurs="unbounded"/> XML 문서 <book id="b1" kind="컴퓨터"> <title>XML And Java</title> <author>신민철</author> <publisher>프리렉</publisher> <price>25000</price> </book>

2. 컴플렉스 타입의 확장 및 제한 2-5 자식 엘리먼트와 속성을 갖는 컴플렉스 타입의 제한 자식 엘리먼트의 갯수를 줄인다거나, 속성값을 제한하여 사용할 경우. 문법 <xsd:complexType name="컴플렉스 타입 이름"> <xsd:complexContent> <xsd:extension base="제한할 컴플렉스 타입 이름"> <xsd:restriction> 제한할 컴플렉스 타입이 가지고 있는 엘리먼트 중에 실제 사용할 엘리먼트만 재 선언 </xsd:restriction> 제한할 컴플렉스 타입에서 속성값의 범위를 제한하는 속성만 선언 </xsd:extension> </xsd:complexContent> </xsd:complexType> 주의 사항(1) : base 속성값으로 심플 타입 컨텐트를 갖지 않는, 즉 자식 엘리먼트 및 속성만 가지고 있는 컴플렉스 타입 이름만 올 수 있다. 주의 사항(2) : 컴플렉스 타입을 제한하고자 할 경우, 제한하고자 하는 엘리먼트를 제외한 나머지 엘리먼트들을 모두 기술하여야 한다. 또한 새로운 엘리먼트가 아닌, 컴플렉스 타입이 가지고 있는 엘리먼트가 와야 한다. 속성값의 제한은 적은 범위로의 제한만 가능하다.

2. 컴플렉스 타입의 확장 및 제한 스키마문서 <!-- 글로벌 컴플렉스 타입 정의 --> <xsd:complexType name="ctBook2"> <xsd:complexContent> <xsd:restriction base="ctBook"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="kind"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="컴퓨터"/> <xsd:enumeration value="소설"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexContent> </xsd:complexType> <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name="book" type="ctBook2“ maxOccurs="unbounded"/> XML문서 <xsd:element name="book" type="ctBook2" maxOccurs="unbounded"/>

2. 컴플렉스 타입의 확장 및 제한 2-6 컴플렉스 타입의 다형성(polymorphism) 다형성이란 동일 종류지만 여러 가지의 개별적인 형태를 가지고 있는 것을 말한다. XML Schema에서는 엘리먼트의 다형성도 지원하지만 컴플렉스 타입의 다형성도 지원한다. 엘리먼트 선언시 type 속성에 특정 종류의 컴플렉스 타입이 온다는 것만 지정해 두면, 실제 XML 문서 작성시, 해당 컴플렉스 타입의 형태는 물론이고, 해당 컴플렉스 타입을 확장한 다른 컴플렉스 타입의 형태도 올 수 있다는 것을 의미한다. 문법 <엘리먼트 이름 xsi:type="컴플렉스 타입 이름"> 스키마 문서 <!-- 글로벌 컴플렉스 타입 적용 --> <xsd:element name="book" type="ctBook" maxOccurs="unbounded"/> XML <book id="b1" xsi:type="ctBook2"> <title>사랑과 전쟁</title> <author>이사랑</author> <publisher>사랑문화사</publisher> </book> XML 문서에서 어떤 타입을 적용할지 결정한다. < 실습 > C6_1405.xsd C6_1405.xml