>  기사  >  백엔드 개발  >  미친 XML 연구 노트(7) -----------XML 스키마

미친 XML 연구 노트(7) -----------XML 스키마

黄舟
黄舟원래의
2017-02-21 14:34:591422검색


XML 스키마는 XML 기반 DTD를 대체합니다.

XML 스키마는 XML 문서의 구조를 설명합니다.

XML Schema 언어는 XSD(XML Schema Definition)로도 참조할 수 있습니다.

꼭 알아야 할 기본지식

계속하기 전, 다음에 대한 기본적인 이해가 있어야 합니다.

  • HTML / XHTML

  • XML 및 XML 네임스페이스

  • DTD에 대한 기본 이해

먼저 알아보려면 프로젝트를 보려면 홈페이지에서 이 튜토리얼을 방문하세요.

XML 스키마란 무엇인가요?

XML 스키마의 역할은 DTD와 유사하게 XML 문서의 법적 구성 요소를 정의하는 것입니다.

XML 스키마:

  • 문서에 나타날 수 있는 요소 정의

  • 문서에 나타날 수 있는 속성 정의

  • 어떤 요소가 하위 요소인지 정의

  • 하위 요소의 순서 정의

  • 하위 요소의 개수 정의

  • 요소가 비어 있는지 또는 텍스트를 포함할 수 있는지 정의

  • 요소 및 속성의 데이터 유형을 정의

  • 요소 및 속성에 대한 기본 및 고정 값 정의

XML 스키마는 DTD

우리는 XML 스키마가 곧 대부분의 웹 애플리케이션에서 DTD를 대체할 것이라고 믿습니다.

이유는 다음과 같습니다.

  • 향후 필요에 따라 XML 스키마 확장 가능

  • 더 완벽하고 강력한 XML 스키마

  • XML 스키마는 XML을 기반으로 작성됩니다

  • XML 스키마는 데이터 유형을 지원합니다

  • XML 스키마는 네임스페이스를 지원합니다

XML 스키마를 사용하는 이유는 무엇입니까?


XML 스키마는 DTD보다 강력합니다.

XML Schema는 데이터 유형을 지원합니다

XML Schema의 가장 중요한 기능 하나 데이터 유형을 지원합니다.

데이터 유형 지원으로 허용되는 문서 내용을 더 쉽게 설명할 수 있습니다.

  • 을 사용하면 데이터의 정확성을 더 쉽게 확인할 수 있습니다.

  • 을 사용하면 데이터베이스의 데이터와 더 쉽게 상호 작용할 수 있습니다.

  • 데이터 측면 정의를 더 쉽게 만듭니다.

  • 데이터 모델 정의를 더 쉽게 만듭니다( 또는 데이터 형식)

  • 다른 데이터 유형 간의 데이터 변환을 더 쉽게 만듭니다

편집자 주: 데이터 제약조건 또는 패싯은 XML 스키마 프로토타입의 용어로 중국어로 "얼굴"로 번역될 수 있으며 데이터 유형의 허용되는 값을 제한하는 데 사용됩니다.

XML 스키마는 XML 구문을 사용합니다.

XML 스키마의 또 다른 중요한 기능은 XML로 작성됩니다.

XML에서 XML 스키마를 작성하면 많은 이점이 있습니다.

  • 새로운 언어를 배울 필요가 없습니다

  • XML 편집기를 사용하여 스키마 파일을 편집할 수 있습니다

  • XML 파서를 사용하여 다음을 수행할 수 있습니다. 스키마 파일 구문 분석

  • 스키마는 XML DOM을 통해 처리할 수 있습니다.

  • 스키마는 XSLT를 통해 변환됨

XML 스키마는 데이터 통신을 보호합니다

데이터가 발신자에서 수신자로 전송될 때 중요한 점은 양측 모두에 동일한 "기대 값"의 내용을 명확하게 이해합니다.

XML 스키마를 사용하면 송신자가 수신자가 이해할 수 있는 방식으로 데이터를 설명할 수 있습니다.

"03-11-2004"와 같은 데이터 유형은 일부 국가에서는 11월 3일로 해석되지만 다른 국가에서는 3월 11일로 해석됩니다.

그러나 349a8bdc82a4be11e111653760fb49d72004-03-11fa78126cab04dbaa4bc5e7d79b5cd99e와 같은 데이터 유형을 가진 XML 요소는 일관된 콘텐츠를 보장합니다. 이는 XML 데이터 유형 "date"에 "YYYY-MM-DD" 형식이 필요하기 때문입니다.

XML 스키마는 확장 가능합니다

XML 스키마는 XML 작성이므로 확장 가능합니다.

확장 가능한 스키마 정의를 사용하면 다음을 수행할 수 있습니다.

  • 다른 스키마에서 스키마 재사용

  • 여러 스키마를 참조하는 동일한 문서에서 표준 유형

  • 에서 파생된 고유한 데이터 유형 만들기

좋은 형식을 갖추는 것만으로는 충분하지 않습니다.

  • XML 선언으로 시작해야 합니다

  • 고유한 루트 요소가 있어야 합니다

  • 시작 태그는 종료 태그와 일치해야 합니다

  • 요소는 대소문자를 구분합니다

  • 모든 요소는 닫아야 합니다

  • 모든 요소는 적절하게 중첩되어야 합니다

  • 엔터티는 특수 문자에 사용해야 합니다

문서의 형식이 양호하더라도 오류가 없다는 보장은 없으며 이러한 오류는 심각한 결과를 초래할 수 있습니다.

다음 시나리오를 고려해 보세요. 5다스가 아닌 5다스의 레이저 프린터를 주문했습니다. XML 스키마를 사용하면 이러한 오류의 대부분이 유효성 검사 소프트웨어에 의해 포착됩니다.

XML 스키마 사용 방법


XML 문서는 DTD 또는 XML 스키마를 참조할 수 있습니다.

간단한 XML 문서:

이 XML 문서를 참조하세요. "note.xml":

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting!</body>
</note>

DTD 파일

다음 중 하나 예는 위 XML 문서의 요소를 정의하는 "note.dtd"라는 DTD 파일입니다.

<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

1행은 note 요소에 4개의 하위 요소가 있음을 정의합니다. from, 제목, 본문".

2-5행에서는 to, from,heading,body 요소의 유형을 "#PCDATA"로 정의합니다.

XML Schema

다음 예는 "note.xsd"라는 파일입니다. 위 XML 문서의 요소를 정의하는 XML 스키마 파일:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

</xs:schema>

note 요소는 다른 하위 요소를 포함하므로 복합 유형입니다. 다른 요소(to, from,heading,body)는 다른 요소를 포함하지 않으므로 단순 유형입니다. 다음 장에서는 복합 유형과 단순 유형에 대해 자세히 알아봅니다.

DTD에 대한 참조

이 파일에는 DTD에 대한 참조가 포함되어 있습니다.

<?xml version="1.0"?><!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd"><note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting!</body>
</note>

XML 스키마 참조

이 파일에는 XML 스키마에 대한 참조가 포함되어 있습니다.

<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.w3school.com.cn note.xsd">

<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting!</body>
</note>

위는 미친 XML 학습 노트입니다(7)--------- ---XML 스키마 내용, 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.