콘텐츠 요약: XML 스키마는 DTD와 마찬가지로 XML 문서의 구조와 콘텐츠 스키마를 정의하고 설명하는 역할을 합니다. XML 문서에 존재하는 요소와 요소 간의 관계를 정의할 수 있으며, 요소의 데이터 유형과 속성을 정의할 수 있습니다.
XML 스키마란
XML 스키마는 DTD와 마찬가지로 XML 문서의 구조와 내용 스키마를 정의하고 설명하는 역할을 담당합니다. XML 문서에 어떤 요소와 요소 간의 관계가 존재하는지 정의할 수 있으며, 요소와 속성의 데이터 유형을 정의할 수 있습니다.
XML 스키마 자체는 XML 구문 구조를 따르는 XML 문서입니다. 일반적인 XML 파서로 구문 분석할 수 있습니다.
스키마를 사용하는 이유
이미 DTD를 사용하여 XML 구조와 데이터 유형을 정의했는데 왜 스키마가 필요한가요?
DTD에는 결함이 많기 때문입니다.
1) DTD는 정규 표현식을 기반으로 하며 설명 기능이 제한되어 있습니다.
2) DTD는 데이터 유형을 지원하지 않으며 대부분의 응용 프로그램 환경에서 부족합니다.
3) DTD의 제약 정의 기능은 XML 인스턴스 문서에 대해 더 자세한 의미론적 제한을 적용하기에는 부족합니다.
4) DTD의 구조가 충분히 구조화되지 않아 재사용할 수 없습니다.
5) DTD는 설명 방법으로 XML을 사용하지 않으며 DTD 구성 및 액세스에 대한 표준 프로그래밍인터페이스가 없습니다. 표준은 사용할 수 없습니다. 프로그래밍 방식으로 DTD 유지 관리를 수행합니다.
XML 스키마는 이러한 DTD의 단점을 해결하도록 설계되었습니다. XML 스키마의 장점은 다음과 같습니다.
1) XML 스키마는 XML을 기반으로 하며 특별한 구문이 없습니다
2) XML은 다른 XML 파일처럼 구문 분석하고 처리할 수 있습니다
3) XML Schema는 일련의 데이터 유형(int, float, Boolean, date 등)을 지원합니다.
4) XML Schema 확장 가능한 데이터 모델을 제공합니다.
5) XML 스키마는 포괄적인 네임스페이스를 지원합니다.
6) XML 스키마는 속성 그룹을 지원합니다.
간단한 XML 스키마 문서
이 스키마에는 요소가 정의됩니다: 수량, 해당 유형은 nonNegativeInteger(음수가 아닌 정수), xmlns입니다. 위의 Part 3에서 설명한 스키마의 네임스페이스입니다.
다음 XML 조각은 유효합니다:
<quantity>5</quantity>
다음 XML 조각은 불법입니다:
<quantity>-4</quantiy>
스키마의 유형
스키마는 주로 세 가지 구성 요소를 포함합니다: 요소 , 속성 및 표기법이 있습니다.
이 세 가지 기본 구성 요소는 다음 구성 요소로 결합될 수도 있습니다.
a) 유형 정의 구성 요소: 단순 유형 및 복합 유형
b) 어셈블리 구성 요소
c) 속성 구성요소
단순 유형
XML 스키마는 요소 콘텐츠 및 속성 값을 설명하는 데 사용할 수 있는 일부 내장 데이터 유형을 정의합니다.
요소에 숫자, 문자열 또는 기타 데이터만 포함되고 하위 요소는 포함되지 않는 경우 이를 단순 유형이라고 합니다.
그림과 같이 요소수량은 단순형이다. 해당 요소 콘텐츠는 모든 특성 및 하위 요소를 제외하고 음수가 아닌 정수여야 합니다.
<quantity>some</quantity>
모든 내장 단순 유형
기본 유형
string,boolean,decimal,float,double,duration datetime,time,date,gYearMonth,gYear,gMonthDay, dDay,gMonth,hexBinary,base64Binary,any URI,QName NOTATION
파생 유형(괄호 안의 기본 유형)
normalizedString(string),language(tonken),token(normalizedString) NMTOKEN(token),Name(token),NCName(Name),ID(NCName),IDREF(NCName) IDREFS(list of IDREF),ENTITY(NCName),ENTITIES(list of ENTITY) integer(decimal),nonPositiveInteger(integer), negativeInteger(noPositiveInteger),long(integer),int(long), short(int),byte(short),nonNegativeInteger(integer) unsignedLong(nonNegativeInteger),unsignedInt(unsignedLong), unsignedShort(unsignedInt),unsignedByte(unsignedShort), positiveInteger(nonNegativeInteger)
간단 유형 만들기
그림에서 먼저 간단한 유형인 QuantityType을 만듭니다. 이는 정수에서 상속됩니다. minInclusive 및 maxInclusive는 최소값 2와 최대값 5를 정의합니다. 마지막으로 요소 수량 유형을 수량 유형으로 정의합니다.
正确: <quantity>3</quantity> 错误: <quantity>10</quantity> <qauntity>aaa</quantity>
restriction을 사용하여 특정 값이나 텍스트로 허용을 제한할 수 있습니다.
基本方面:equal,ordered,bounded,cardinality,numeric 限制方面:length,minLength,maxLength pattern,enumeration whiteSpace maxInclusive,maxExclusive,minInclusive,minExclusive totalDigits,fractionDigits
간단한 유형의 예 1
The 이 SKU 유형의 값: 숫자 3개, 하이픈, 대문자 2개.
패턴 뒤에는 정규 표현식이 옵니다. 정규식 구문에 대해서는 다른 책을 참조하세요.
正确: <ourSKU>123-AB</ourSKU> 错误: <ourSKU>abc-AB</ourSKU> <ourSKU>123-ab</ourSKU>
단순 유형의 예 2
미국 주 이름을 설명하는 데 사용되는 USState 유형입니다. 열거형을 사용하여 모든 주 이름을 나열합니다. 값을 입력하면 그 안에 나열된 상태 이름만 사용할 수 있습니다.
위 내용은 XML 스키마 풀 터치 그래픽 및 텍스트 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!