XML 파일 정의 제약 조건
XML 의 제약 모델 은 두 가지 가 있 는데 하 나 는 DTD 이 고 다른 하 나 는 Schema 입 니 다. 먼저 DTD 를 말씀 드 리 겠 습 니 다.
DTD (Document Type Definition) 는 모두 문서 형식 정의 라 고 합 니 다. 다음은 dtd 문서 의 정 의 를 직접 보 겠 습 니 다.
<!ENTITY " ">
<!ENTITY % "CDATA">
<!ELEMENT ( +)>
<!ELEMENT ( , , )>
<!ELEMENT (#PCDATA)>
<!ELEMENT (#PCDATA)>
<!ELEMENT (#PCDATA)>
<!ATTLIST
% ; #IMPLIED
CDATA #IMPLIED
CDATA #REQUIRED
CDATA #FIXED " "
CDATA " "
>
<!ATTLIST ( | | ) " ">
<!ATTLIST ID #REQUIRED>
이 demo. dtd 에 따라 작 성 된 demo. xml 내용:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SYSTEM "book.dtd">
< >
< >
< =" ">Java </ >
< =" " =" " ="& ;"> </ >
< ="id">30.0</ >
</ >
</ >
다음은 demo. dtd 파일 의 내용 을 살 펴 보 겠 습 니 다.<!ELEMENT ( +)>
'책장' 을 정의 하 는 탭 을 표시 합 니 다. 이 탭 아래 에 한 권 또는 여러 권 의 '책' 탭 을 놓 습 니 다. (빈 칸 주의)구체 적 인 규칙:
요소 내용 에서 도 +, *,?등 기 호 는 요소 가 나타 난 횟수 를 나타 낸다. +: 1 회 또는 여러 번 (책 +)?:0 번 또는 한 번 (책?) *: 0 번 또는 여러 번 (책 *)
<!ELEMENT ( , , )>
'책' 탭 을 정의 하 는 것 을 의미 합 니 다. 이 탭 아래 에 '책 이름', '작가', '가격' 탭 을 정의 합 니 다. 이 세 개의 탭 은 반드시 나타 나 야 하고 이 순서에 따라 정의 해 야 합 니 다. (빈 칸 주의)
구체 적 인 규칙:
요소 내용 에 서 는 다음 과 같은 방식 으로 내용 의 구성 관 계 를 설명 할 수 있 습 니 다. 1. 쉼표 로 구분 하여 내용 의 출현 순 서 는 성명 시 와 일치 해 야 합 니 다. 2. | 로 구분 하여 하 나 를 선택 하면 여러 개 에 한 개 만 나타 날 수 있 음 을 표시 합 니 다
<!ELEMENT (#PCDATA)>
탭 '책 이름' 을 정의 합 니 다. 이 탭 체 는 텍스트 내용 입 니 다. 구체 적 으로 demo. xml 에 대응 하여 용법 을 볼 수 있 습 니 다.<!ATTLIST
% ; #IMPLIED
CDATA #IMPLIED
CDATA #REQUIRED
CDATA #FIXED " "
CDATA " "
>
라벨 '저자' 에서 이름, 나이, 연락처, 사이트 서비스, 개인 취미 속성 을 정의 했다.구체 적 인 규칙:
\ # REQUIRED: 이 속성 을 설정 해 야 합 니 다 \ # IMPLIED: 설정 할 수도 있 고 설정 하지 않 을 수도 있 습 니 다 #FIXED: 이 속성의 값 이 하나의 값 으로 고정 되 어 있 음 을 설명 합 니 다. XML 파일 에 서 는 이 속성 에 다른 값 을 설정 할 수 없습니다. 단, 이 속성 에 이 값 을 제공 해 야 합 니 다. 기본 값 을 직접 사용 합 니 다: XML 에서 이 값 을 설정 할 수도 있 고 설정 하지 않 을 수도 있 습 니 다. 설정 하지 않 으 면 기본 값 을 사용 합 니 다.
<!ATTLIST ( | | ) " ">
라벨 '책 이름' 에 '책 유형' 을 정의 한 것 을 나타 낸다. 규칙:
속성의 종 류 는 한 그룹의 값 을 추출 하 는 목록 일 수 있 습 니 다. XML 파일 에 설 정 된 속성 값 은 이 목록 의 한 값 (매 거 진) 일 수 있 습 니 다.
<!ENTITY " ">
<!ENTITY % "CDATA">
정의 실체:첫 번 째 방식 으로 정 의 된 실 체 는 실 체 를 참조 하고 정 의 된 내용 은 xml 파일 에 사용 할 수 있 습 니 다. 예 를 들 어:
< =" " =" " ="& ;"> </ >
사용 & 기호 참조 및 분점 으로 종료두 번 째 방식 으로 정 의 된 실 체 는 매개 변수 실체 로 dtd 파일 자체 에 사 용 됩 니 다. xml 파일 에서 예 를 들 어:
% ; #IMPLIED
마지막 으로 xml 에서 dtd 파일 을 참조 해 야 합 니 다.
<!DOCTYPE SYSTEM "book.dtd">
이상 에서 말 한 내용 은 dtd 제약 문 서 를 어떻게 작성 하 는 지, 그리고 dtd 제약 문 서 를 통 해 해당 하 는 xml 파일 을 작성 하 는 것 입 니 다. 사실 struts 는 dtd 로 제약 합 니 다. struts 압축 패키지 에서 볼 수 있 습 니 다.
다음은 Schema 제약 사항 을 말씀 드 리 겠 습 니 다.
먼저 Schema 에 대해 알 아 보 겠 습 니 다.
XML Schema 는 XML 문서 의 구조 와 내용 을 정의 하고 설명 하 는 모드 언어 로 DTD 의 한 계 를 극복 하기 위해 XML Schema 파일 자체 가 XML 파일 이지 만 확장 자 는 보통 xsd 입 니 다. XML Schema 문 서 는 보통 패턴 문서 (제약 문서) 라 고 부 릅 니 다.이 문서 에 따라 작 성 된 xml 파일 을 인 스 턴 스 문서 라 고 합 니 다. XML 파일 과 마찬가지 로 XML Schema 문서 에 도 하나의 노드 가 있어 야 하지만 이 노드 의 이름 은 Schema 입 니 다. XML Schema 제약 문 서 를 작성 한 후 이 파일 에 설 명 된 요 소 를 URI 주소 에 연결 해 야 합 니 다. XML Schema 기술 에 전문 용어 가 있 습 니 다.이 과정 을 설명 합 니 다. 즉, XML Schema 문서 에서 설명 한 요 소 를 이름 공간 에 연결 하면 나중에 XML 파일 은 이 URI (즉 이름 공간) 를 통 해 엔진 을 분석 할 수 있 습 니 다. xml 문서 에서 작 성 된 요소 가 어디에서 왔 는 지, 누가 제약 하 는 지 알려 줄 수 있 습 니 다.
DTD 와 Schema 의 차 이 를 살 펴 보 자. XML Schema 는 XML 문법 구조 에 부합된다. DOM, SAX 등 XML API 는 XML Schema 문서 의 내용 을 쉽게 해석 할 수 있다. XML Schema 는 이름 공간 을 잘 지원 합 니 다. XML Schema 는 XML DTD 보다 더 많은 데이터 형식 을 지원 하고 사용자 가 새로운 데이터 형식 을 사용자 정의 할 수 있 도록 지원 합 니 다. XML Schema 는 제약 조건 을 정의 하 는 능력 이 매우 강하 여 XML 인 스 턴 스 문서 에 대해 세밀 한 의미 제한 을 할 수 있 습 니 다. XML Schema 는 DTD 처럼 실 체 를 정의 할 수 없습니다. DTD 보다 더 복잡 하지만 Xml Schema 는 현재 w3c 조직의 표준 으로 DTD 를 점차 대체 하고 있 습 니 다.
이 내용 의 설명 은 여기 서 설명 하지 않 겠 습 니 다. 내용 이 너무 많 고 이미 만들어 진 것 이 있 기 때 문 입 니 다. 바로 w3c 홈 페이지 에서 찾 는 것 입 니 다.
http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/#SimpleTypeFacets
여기 서 분명히 말 했 습 니 다. 그리고 demo 가 있 습 니 다. demo 에 대해 상세 하 게 설명 한 것 은 바로 한 가지 입 니 다. 그 는 영어 로 썼 기 때문에 영 어 를 잘 못 하 는 친구 들 은 너무 아 픕 니 다. 스스로 방법 을 생각해 보 세 요.
Google 이 작성 한 dtd 파일 과 xsd 파일, xml 파일 이 올 바른 지 확인 해 야 합 니 다. IE 브 라 우 저 는 dtd 와 schema 의 제약 을 검증 하지 않 기 때문에 MyEclipse 도 구 를 사용 하여 검 측 해 야 합 니 다.
마지막 으로 Schema 는 매우 강력 합 니 다. DTD 제약 모드 를 대체 하고 있 습 니 다. w3c 에 의 해 표준 으로 정의 되 었 습 니 다. 또한 Android 의 xml 파일 이 모두 Schema 모드 로 작 성 된 것 을 볼 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.