4장 XML 구문
개요:
1. XML 구문 규칙 2. 요소 구문 3. 주석 구문 4. CDATA 구문 5. 네임스페이스 구문 6. 엔터티 구문 7. DTD 구문
앞의 세 장을 공부함으로써 우리는 이미 XML이 무엇인지, XML의 구현 원리 및 관련 용어를 이해했습니다. 다음으로, XML의 구문 사양을 배우고 자체 XML 문서를 작성하기 시작합니다.
1.XML 구문 규칙
XML 문서는 HTML 원본 코드와 유사하며 태그를 사용하여 내용을 식별합니다. XML 문서를 생성할 때는 다음과 같은 중요한 규칙을 따라야 합니다.
규칙 1: XML 선언문이 있어야 합니다. 이에 대해서는 이전 장에서 이미 언급했습니다. 선언은 XML 문서의 첫 번째 문장이며 형식은 다음과 같습니다.
<?xml version="1.0" 독립형="예/아니요" 인코딩="UTF-8"?>
선언의 목적은 이 문서가 XML 문서임을 브라우저나 기타 처리 프로그램에 알리는 것입니다. 선언문의 버전은 문서가 준수하는 XML 사양의 버전을 나타냅니다. 독립 실행형은 문서가 DTD 파일과 함께 제공되는지 여부를 나타냅니다. 그렇다면 매개변수 인코딩은 문서에 사용된 언어 인코딩을 나타냅니다. 기본값은 UTF-8입니다.
규칙 2: DTD 파일이 있는지 여부 문서가 "유효한 XML 문서"(이전 장 참조)인 경우 해당 문서에는 해당 DTD 파일이 있어야 하며 DTD 파일에 설정된 사양을 엄격하게 준수해야 합니다. DTD 파일의 선언문은 다음 형식의 XML 선언문을 따릅니다.
<!DOCTYPE 문서 유형 SYSTEM/PUBLIC "dtd-name">
안에:
"!DOCTYPE"은 DOCTYPE을 정의한다는 의미입니다.
"type-of-doc"는 사용자가 정의한 문서 유형의 이름으로 일반적으로 DTD 파일 이름과 동일합니다.
두 매개변수 "SYSTEM/PUBLIC" 중 하나만 사용하십시오. SYSTEM은 문서에서 사용하는 개인 DTD 파일의 URL을 참조하고, PUBLIC은 문서에서 사용하는 공용 DTD 파일의 URL을 참조합니다.
"dtd-name"은 DTD 파일의 URL과 이름입니다. 모든 DTD 파일에는 ".dtd"라는 접미사가 붙습니다.
우리는 여전히 위의 예를 사용합니다. 다음과 같이 작성해야 합니다.
<?xml version="1.0" 독립형="no" encode="UTF-8"?>
<!DOCTYPE 파일 목록 SYSTEM "filelist.dtd">
규칙 3: 대문자 사용에 주의하세요. XML 문서에서는 대문자와 소문자에 차이가 있습니다. <P>와 <p>는 서로 다른 식별자입니다. 요소를 작성할 때 전면 및 후면 식별자의 대소문자는 동일하게 유지되어야 합니다. 예: <Author>ajie</Author>, <Author>ajie</author>라고 쓰면 틀립니다.
모두 대문자, 모두 소문자로 사용하거나 첫 글자를 대문자로 사용하는 습관을 들이는 것이 좋습니다. 이렇게 하면 대소문자 불일치로 인한 문서 오류가 줄어듭니다.
규칙 4: 속성 값에 따옴표를 추가하세요. HTML 코드에서는 속성 값을 따옴표로 묶을 수도 있고 안 할 수도 있습니다. 예를 들어 <font color=red>word</font> 및 <font color="red">word</font>는 모두 브라우저에서 올바르게 해석될 수 있습니다.
그러나 XML에서는 모든 속성 값을 따옴표로 묶어야 한다고 규정하고 있습니다(작은 따옴표 또는 큰 따옴표 가능). 그렇지 않으면 오류로 간주됩니다.
규칙 5: 모든 태그에는 해당하는 닫는 태그가 있어야 합니다. HTML에서는?lt;br>와 같이 태그가 쌍으로 나타날 수 없습니다. XML에는 모든 태그가 쌍으로 표시되어야 한다고 규정되어 있습니다. 시작 태그가 있으면 종료 태그도 있어야 합니다. 그렇지 않으면 오류로 간주됩니다.
규칙 6: 모든 빈 태그도 닫혀야 합니다. 빈 태그는 태그 쌍 사이에 콘텐츠가 없는 태그입니다. 예를 들어 <br>, <img> 및 기타 태그입니다. XML에서는 모든 태그에 종료 태그가 있어야 한다고 규정되어 있습니다. 이러한 빈 태그의 경우 XML의 처리 방법은 원래 태그 끝에 /를 추가하는 것입니다. 예를 들어:
<br>은 <br />로 작성해야 합니다.
<META name="keywords" content="XML, SGML, HTML">은 <META name="keywords" content="XML, SGML, HTML" />로 작성해야 합니다.
<IMG src= "cool.gif">는 <IMG src= "cool.gif" />로 작성해야 합니다.
4장 XML 구문
2. 요소 구문
요소는 한 쌍의 식별자와 해당 콘텐츠로 구성됩니다. 이렇게: ajie. 요소 이름과 식별자 이름이 동일합니다. ID는 속성을 사용하여 더 자세히 설명할 수 있습니다.
XML에는 예약어가 없으므로 어떤 단어라도 요소 이름으로 사용할 수 있습니다. 그러나 다음 규정도 준수해야 합니다.
1. 이름에는 문자, 숫자, 기타 문자가 포함될 수 있습니다.
2. 이름은 숫자나 "_"(밑줄)로 시작할 수 없습니다.
3. 이름은 xml(또는 XML 또는 Xml ..) 문자로 시작할 수 없습니다.
4. 이름에는 공백이 포함될 수 없습니다.
5. 이름에는 ":"(콜론)을 포함할 수 없습니다.
요소를 더 쉽게 읽고, 이해하고, 조작할 수 있도록 몇 가지 제안 사항이 더 있습니다.
1. 이름에 "."를 사용하지 마십시오. 많은 프로그래밍 언어에서 "."는 객체의 속성으로 사용됩니다(예: 글꼴.색상). 같은 이유로 "-"를 사용하지 않는 것이 가장 좋습니다. 사용해야 하는 경우 "_"로 바꾸십시오.
2. 이름은 최대한 짧게 유지하세요.
3. 이름의 대문자 사용과 대문자 사용에 동일한 표준을 사용하도록 노력하십시오.
4. 이름에는 중국어 등 영어 이외의 문자를 사용할 수 있습니다. 그러나 일부 소프트웨어는 이를 지원하지 않을 수 있습니다. (IE5는 현재 중국어 요소를 지원합니다.)
또한 속성에 대한 간단한 설명을 추가합니다. HTML에서는 속성을 사용하여 요소의 표시 형식을 정의할 수 있습니다. 예를 들어 <font color="red">word</font>는 단어를 빨간색으로 표시합니다. XML에서 속성은 식별자에 대한 설명일 뿐이며 요소 콘텐츠 표시와는 아무 관련이 없습니다. 예를 들어, 동일한 문장: <font color="red">word</font>는 해당 단어를 빨간색으로 표시하지 않습니다. (그래서 일부 네티즌들은 XML에서 텍스트를 빨간색으로 표시하는 방법에 대해 질문할 것입니다. 이를 위해서는 CSS 또는 XSL을 사용해야 하며 이에 대해서는 아래에서 자세히 설명하겠습니다.)
3. 코멘트의 구문
주석은 읽고 이해하기 쉽도록 XML 문서에 추가되며 프로그램에서 해석되거나 브라우저에서 표시되지 않습니다.
주석 구문은 다음과 같습니다.
<!-- 댓글 정보입니다-->
보시다시피 HTML의 주석 구문과 동일하여 매우 쉽습니다. 좋은 댓글 작성 습관을 기르면 문서를 더 쉽게 유지 관리하고 공유할 수 있으며 더욱 전문적으로 보일 수 있습니다.
4. CDATA 구문
CDATA의 전체 이름은 문자 데이터이며 문자 데이터로 번역됩니다. XML 문서를 작성할 때 문자, 숫자 및 "<"와 같은 기타 기호 자체를 표시해야 하는 경우가 있습니다. XML에서는 이러한 문자가 이미 특별한 의미를 갖고 있습니다. 이를 위해서는 CDATA 구문을 사용해야 합니다. 구문 형식은 다음과 같습니다.
<![CDATA[여기에 표시할 문자를 배치하세요.]]>
예를 들어:
<![CDATA[<AUTHOR sex="female">아지</AUTHOR>]]>
페이지에 표시되는 콘텐츠는 "<AUTHOR sex="female">ajie</AUTHOR>"입니다.
4장 XML 구문
5. 네임스페이스 구문
네임스페이스는 네임스페이스로 변환됩니다. 네임스페이스는 무엇을 합니까? XML 문서에서 다른 사람의 또는 여러 DTD 파일을 사용하면 다음과 같은 모순이 발생합니다. XML의 식별자는 서로 다른 DTD 파일에서 직접 생성되기 때문에 식별자 이름은 동일할 수 있지만 의미가 다를 수 있습니다. 데이터 혼란을 야기합니다.
예를 들어 <table>wood table</table> 문서에서 <table>은 테이블을 나타냅니다.
다른 문서 <table>namelist</table>에서 <table>은 테이블을 나타냅니다. 두 문서를 동시에 작업해야 하는 경우 이름 충돌이 발생합니다.
이 문제를 해결하기 위해 네임스페이스라는 개념을 도입했습니다. 네임스페이스는 식별자 이름에 URL을 추가하여 동일한 이름을 가진 이러한 식별자를 구별합니다.
네임스페이스는 XML 문서의 시작 부분에서도 선언되어야 합니다. 선언 구문은 다음과 같습니다.
<문서 xmlns:사용자 이름='URL'>
여기서 yourname은 사용자가 정의한 네임스페이스의 이름이고 URL은 네임스페이스의 URL입니다.
위의 "table <table>" 문서가 http://www.zhuozi.com에서 온다고 가정하면 다음과 같이 선언할 수 있습니다.
<문서 xmlns:zhuozi='http://www.zhuozi.com'>
그런 다음 후속 태그에서 정의된 네임스페이스를 사용합니다.
<zhuozi:table>나무 테이블</table>
이는 두 개의 <table>을 구별합니다. 참고: URL을 설정한다고 해서 이 로고를 해당 URL에서 읽어야 한다는 의미는 아니며 단지 구별의 표시일 뿐입니다.
6. 엔터티 구문
엔터티는 "엔티티"로 번역됩니다. 그 기능은 단어의 "매크로"와 유사하며, DW의 템플릿으로도 이해할 수 있습니다. 엔터티를 미리 정의한 다음 한 문서에서 여러 번 호출하거나 여러 문서에서 동일한 엔터티를 호출할 수 있습니다.
엔터티에는 문자, 텍스트 등이 포함될 수 있습니다. 엔터티를 사용하면 다음과 같은 이점이 있습니다. 1. 문서의 여러 동일한 부분을 한 번만 입력하면 됩니다. 2. 유지보수 효율성이 향상됩니다. 예를 들어, 저작권 엔터티가 모두 포함된 40개의 문서가 있는 경우 이 저작권을 수정해야 하는 경우 모든 파일을 수정할 필요는 없으며 원래 정의된 엔터티 문만 변경하면 됩니다.
XML은 두 가지 유형의 엔터티를 정의합니다. 하나는 XML 문서에 사용되는 일반적인 엔터티이고, 다른 하나는 DTD 파일에 사용되는 매개변수 엔터티입니다.
엔터티의 정의 구문은 다음과 같습니다.
<!DOCTYPE 파일 이름 [
<!ENTITY 엔터티 이름 "엔티티-컨텐츠"
]
>
예를 들어 저작권 정보를 정의하고 싶습니다.
<!DOCTYPE 저작권 [
<!ENTITY copyright "저작권 2001, Ajie. 모든 권리 보유"
]
>
내 저작권 정보 콘텐츠가 XML 파일로 다른 사람과 공유되는 경우 외부 호출 방법을 사용할 수도 있습니다. 구문은 다음과 같습니다.
<!DOCTYPE 저작권 [
<!ENTITY 저작권 시스템 "http://www.sample.com/copyright.xml">
]
>
문서에 정의된 엔터티의 참조 구문은 &entity-name;입니다.
예를 들어 위에서 정의한 저작권 정보는 호출 시 ?copyright로 작성됩니다.
전체 예는 다음과 같습니다. 이를 복사하여 copyright.xml로 저장하면 예를 볼 수 있습니다.
<?xml version="1.0" 인코딩="GB2312"?>
<!DOCTYPE 저작권 [
<!ENTITY copyright "저작권 2001, Ajie. 모든 권리 보유">
]>
<마이파일>
<제목>XML</제목>
<author>아지</author>
<email>[email protected]</email>
<date>20010115</date>
© 맞다;
</myfile>
4장 XML 구문
7. DTD 구문
DTD는 "유효한 XML 문서"에 필요한 파일입니다. 우리는 DTD 파일을 사용하여 문서의 요소와 식별자의 규칙과 상호 관계를 정의합니다. DTD 파일을 만드는 방법은 무엇입니까? 함께 배워봅시다:
1. 요소 설정
요소는 XML 문서의 기본 구성 요소입니다. DTD에서 요소를 정의한 다음 이를 XML 문서에서 사용해야 합니다. 요소의 정의 구문은 다음과 같습니다. <!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*>
설명하다:
"<!ELEMENT"는 요소 선언으로, 정의하려는 것이 요소임을 나타냅니다.
명령문 뒤의 "설명"은 요소의 이름입니다.
"(#PCDATA, DEFINITION)*>"은 이 요소의 사용 규칙입니다. 규칙은 어떤 요소가 포함될 수 있는지, 그리고 요소가 서로 어떻게 관련되는지 정의합니다. 다음 표에는 요소에 대한 규칙이 요약되어 있습니다.
2. 요소 규칙 테이블: