>  기사  >  백엔드 개발  >  XML 시작하기 튜토리얼-속성 선언 코드 예

XML 시작하기 튜토리얼-속성 선언 코드 예

黄舟
黄舟원래의
2017-03-15 16:51:201764검색

유효한 XML 문서는 요소의 속성 을 선언해야 합니다. 완료하려면 ATTLIST 선언을 사용하세요. ATTLIST는 요소 유형에 대해 여러 속성을 선언할 수 있습니다.
ee56423a142649b0ea5b04fbc1a6279c
위의 예에서는 이미지 요소에 src 속성이 있어야 하며 이 속성의 값은 문자 데이터임을 선언합니다. ATTLIST 문을 사용하여 다음과 같이 요소에 대한 여러 속성을 선언할 수 있습니다.
width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > ;
위 문에서는 src, width, height 속성이 필수이고 alt 속성은 선택사항임을 나타냅니다. 1. 속성 유형

CDATA 유형 속성 값에는 텍스트 문자열 이 포함될 수 있습니다. DTD는 속성을 정수 또는 날짜로 지정할 수 없습니다. 스키마는 보다 강력한 데이터 유형을 제공할 수 있습니다.

NMTOKEN 유형 속성 값은 XML 이름 토큰입니다. XML 이름 토큰은 XML 이름과 유사하지만 XML 이름 토큰을 사용하면 모든 문자를 이름의 시작 문자로 사용할 수 있지만 XML 이름의 첫 글자는 문자, 표의 문자 및 밑줄이어야 합니다. 따라서 10, .bashrc는 유효한 XML 이름 태그이지만 유효한 XML 이름은 아닙니다. 모든 XML 이름은 XML 이름 태그이지만 모든 XML 이름 태그가 XML 이름은 아닙니다. 속성에 1990, 2005와 같은 정수가 포함된 경우 해당 유형은 NMTOKEN으로 지정되어야 합니다. 예:

<!ELEMENT person birthday NMTOKEN #REQUIRED>

NMTOKENS 유형 속성에는 공백으로 구분된 하나 이상의 XML 이름 토큰이 포함되어 있습니다. 예:

<person dates="02-01-2005 03-01-2005 05-01-2005">person</person>

해당 선언은 다음과 같아야 합니다.

<!ATTLIST person dates NMTOKENS #REQUIRED>

반면, 이 선언은 슬래시가 아니기 때문에 01/02/2005 형식에는 사용할 수 없습니다. 법적 이름 문자.

열거 선언, 열거에는 키워드가 사용되지 않습니다. 모든 값을 수직 막대로 구분하여 직접 나열합니다. 예:

<!ATTLIST date month(January | February | March | April | May | June | July | August | September | October | November | December) #REQUIRED>

위 명령문에 대한 응답으로 날짜 요소의 월 속성은 12개월 중 하나를 선택할 수 있습니다.

ID 유형의 속성에는 문서 내에서 고유한 XML 이름이 포함되어야 합니다. ID 속성은 요소에 고유한 식별자를 할당합니다.

<!ATTLIST name card_id ID #REQUIRED>

숫자는 유효한 XML 이름이 아니므로 ID 번호는 숫자로 시작할 수 없습니다. 해결 방법은 앞에 밑줄이나 문자를 추가하는 것입니다.

IDREF 유형 속성은 문서에 있는 요소의 ID 유형 속성을 가리킵니다. 따라서 단순한 포함 관계가 충분하지 않을 때 요소 간에 다대다 관계를 설정하는 것이 목적인 XML 이름이어야 합니다. 예:

<project project_id="p1"> <goal>deploy linux</goal> 
<team_member person_card_id="c123"> </project> 
<person card_id="c123"> <name>linuxsir</name> 
<assignment project_project_id="p1"> </person>

project 요소의 project_id 속성과 person 요소의 card_id 속성은 ID 유형이어야 합니다. team_member 요소의 person_card_id 속성과 할당 요소의 project_project_id 속성은 IDREF 유형입니다. 해당 선언은 다음과 같습니다.

<!ATTLIST person card_id ID #REQUIRED> 
<!ATTLIST project project_id ID #REQUIRED> 
<!ATTLIST team_member person_card_id IDREF #REQUIRED> 
<!ATTLIST assignment project_project_id IDREF #REQUIRED>

IDREFS 유형의 속성에는 XML 이름 목록이 포함됩니다. 이름은 공백으로 구분되며 각 이름은 문서에 있는 요소의 ID입니다. 요소가 여러 다른 요소를 참조 해야 하는 경우 이 요소를 사용하세요. 예를 들어

<!ATTLIST person card_id ID #REQUIRED assignment IDREFS #REQUIRED> 
<!ATTLIST project project_id ID #REQUIRED team IDREFS #REQUIRED>

의 해당 문서는 다음과 같이 작성할 수 있습니다.

<project project_id="p1" team="c123"> 
<gold>deploy linux</gold> </project> 
<person card_id="c123" assignment="p1"> 
<name>Linuxsir</name> </person>

ENTITY 유형의 속성은 DTD의 다른 위치에 선언된 구문 분석되지 않은 엔터티의 이름에 포함됩니다. 예를 들어, movie 요소에는 활성화될 때 재생할 mpeg 또는 rm 파일을 식별하는 엔터티 속성이 있을 수 있습니다.

<!ATTLIST movie src ENTITY #REQUIRED>

DTD가 play라는 구문 분석되지 않은 엔터티를 선언하는 경우 이 영화 요소를 사용하여

동영상파일:

<movie src="play" />

ENTITIES 유형의 속성에는 공백으로 구분되어 DTD의 다른 곳에 선언된 구문 분석되지 않은 여러 엔터티 이름이 포함되어 있습니다.

<!ATTLIST slide_show slides ENTITIES #REQUIRED>

DTD가 구문 분석되지 않은 엔터티인 슬라이드1, 슬라이드2, 슬라이드3 등을 선언하는 경우 Slide_show 요소를 사용하여 슬라이드를 XML 문서에 포함할 수 있습니다.

<slide_show slides="slide1 slide2 slide3" />

NOTATION 유형의 속성에는 문서의 DTD에 선언된 표기법의 이름이 포함됩니다. 이 속성 유형은 거의 사용되지 않습니다. 이론적으로 이 속성을 사용하여 특정 특수 요소를 유형과 연결할 수 있습니다. 다음 예에서는 서로 다른 이미지 유형에 대한 네 가지 표기법을 선언한 다음 각 이미지 요소가 그 중에서 유형 속성을 선택해야 한다고 규정합니다.

<!NOTATION gif SYSTEM "image/gif"> 
<!NOTATION tiff SYSTEM "image/tiff"> 
<!NOTATION jpeg SYSTEM "image/jpeg"> 
<!NOTATION png SYSTEM "image/png"> 
<!ATTLIST image type NOTATION (gif | tiff | jpeg | png) #REQUIRED>

각 이미지 요소의 type 속성 값은 gif, tiff, jpeg 및 png의 네 가지 값 중 하나일 수 있습니다. 표기법의 실제 MIME 미디어 유형을 이론적으로 사용할 수 있으므로 이 속성은 열거 유형에 비해 약간의 이점이 있습니다. 슬래시는 XML 이름에 적합한 문자가 아니므로 열거형은 image/png 또는 image/jpeg를 허용되는 값으로 지정할 수 없습니다.

2.属性缺省值 
每个ATTLIST声明除了要提供一种数据类型外,还要声明属性的缺省行为。 

#IMPLIED,属性可选。 

#REQUIRED,属性必须有。 

#FIXED,属性是常量,不能更改。 

<!ATTLIST person name CDATA #FIXED "linuxsir"

Literal,作为一个引用字符串的实际缺省值。 

<!ATTLIST person name NMTOKEN "linuxsir"

如果没有显示指明person元素的name属性,则该值为linuxsir。

위 내용은 XML 시작하기 튜토리얼-속성 선언 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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