집 >백엔드 개발 >XML/RSS 튜토리얼 >웹 프로그래밍 - XML 문법 분석의 상세 설명
XML 문법 분석을 수행하기 전에 먼저 XML 구문의 기본 규칙을 이해해야 합니다.
어휘 특징: 1) XML은 요소 이름과 같이 대소문자를 구분합니다. 열기 및 닫기 태그 대문자와 소문자는 1b01232ea6f0577bc4ec8d1a522b6a86…6879c8de8c5e2889d23c06f516d46b6b이어야 하며, XML의 예약어 문자열은 대문자 및 소문자 요구 사항 2138b59c6fab13d83e93c7de0100771a을 충족해야 합니다. ….
2) XML 예약 표시 문자는 다음과 같습니다. 6d267e5fab17ea8bc578f9e7e5e1570b 예약어 기호는 요소 이름, 요소 텍스트, 속성 이름 및 속성 값에 나타날 수 없습니다. 4ff8ca8a92156d6915c03645f5121b22 일반적인 의미는 <generated718960495943a27c0c1fa06f067aa06f, &Generate&, &aposGenerate', "Generate”
입니다. 3) 요소 이름은 밑줄 또는 문자로 시작하고 문자, 숫자, 마침표, 하이픈, 밑줄, 콜론 및 기타 문자를 포함할 수 있습니다. 언어의 확장 문자 요소 이름에는 공백 문자(공백 문자, 탭 문자, 줄 바꿈 문자, 캐리지 리턴 문자)가 포함될 수 없습니다. 예: 1b01232ea6f0577bc4ec8d1a522b6a86 a376291d94db2e2f2a1f979ad148cf2a 속성 이름 규칙은 요소 이름과 동일하며 속성 값은 작은따옴표 또는 큰따옴표로 묶이고 XML 예약 문자 이외의 문자열로 구성될 수 있습니다. 예: 27c0667d99fb9f3f3d410d52047de0d2
구문 기능 : 1) XML 문서는 XML 설명, 여러 개의 선택적
문서 설명, 여러 개의 선택적 XML 지시문, 여러 개의 선택적 XML 주석 및 루트 요소의 데이터 본문으로 구성됩니다. 또한 CDATA가 포함될 수 있습니다. <?xml …?> /*XML说明*/
<!DOCTYPE …> /*XML文档说明*/
<!-- … --> /*XML注释*/
<?xml-stylesheet …?> /*XML指令*/
<root> /*根数据元素*/
<child>
…<![CDATA[…]]>
</child>
</root>
2) XML 설명은 80b3cad4b5a9c777fa6747e7e462ec18 표시로 닫힙니다. 여기에는 다음과 같은 버전 및 인코딩과 같은 선택적 설명이 포함됩니다. ;?xml 버전 =”1.0” 인코딩=”UTF-9”?>
element_name -> (_ | letter | ascii2) (ε| _ | - | : | . | digit | letter | signs | ascii2)*
element_text -> (ε| not reserve)*
proper_name -> (_ | letter | ascii2) (ε| _ | - | : | . | digit | letter | signs | ascii2)*
proper_value -> (ε| not reserve)*
1) STACK_DFA mata_xml_doc = 7220ebbe1a000cf12dea4e8fc2e71de1
xml_document -> xml_header (ε| xml_declare | xml_instruct | xml_comments)* xml_element xml_header -> [<?xml](space)*(proper_token)*(space)* [?>] xml_declare -> [<!]reserve_word(space)*(token)*(space)*[>] xml_instruct -> [<?]reserve_word(space)* (proper_token)* (space)*[?>] xml_comments -> [<!--](ε| digit | letter | signs | ascii2 | space)*[-- >] xml_element -> [<]element_name (space)*( ε| proper_token)*(space)*[/>] | [<]element_name(space)*( ε | proper_token)*(space)*[>] [ε| <![CDATA[ ]element_text[ε| ]]>] (ε | xml_element)*(space)*[</]element_name[>] proper_token -> proper_name(space)*[=](space)* [ε| <![CDATA[ ] [‘ | “]proper_value[‘ | “] [ε| ]]>] reserve_word -> [DOCTYPE | ELEMENT | NOTATION | …] token -> (ε| not reserve)*2) 스택 상단 기호 세트는 현재 분석 노드의 유형을 반영하는 데 사용됩니다:
Q: {…} /*详见后面的状态集合*/ Σ: /*指向待解析的XML元素词串*/ σ: Q×Σ->Q /*状态转移函数,见状态转移列表*/ q: {NIL_SKIP} /*初始状态*/ Γ: {NIL_FAILED,NIL_SUCCEED} /*终结状态集合*/ S: {Q/*状态*/, N/*DOM节点*/>,<…>} /*下推栈*/3 ) 상태 세트는 스택의 최상위 기호에 해당하는 특정 분석 단계의 특성을 반영합니다.
T:{NIL/*空*/, TG/*标记*/, NS/*元素*/, IS/*指令*/, DS/*声明*/, CD/*CDATA界段*/,CM/*注释*/}
위 내용은 웹 프로그래밍 - XML 문법 분석의 상세 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!