일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바 채팅 프로그램
- xml 파싱 방법
- 원씽 내용
- Notepad++ 줄바꿈
- 자바 채팅
- 빅분기 독학
- 빅데이터분석기사 독학
- dom sax 차이점
- 빅분기 필기
- 자바스크립트 undefined
- 원씽 독후감
- 빅데이터분석기사
- Notepad 줄바꿈
- ajax 동기식
- 노트패드 줄바꿈
- 빅데이터분석기사 필기
- 원씽 책
- 원씽 후기
- 간단한 채팅 프로그램
- 빅분기
- 동기식 비동기식
- 노트패드++ 줄바꿈
- 책 원씽
- The OneThing
- async
- TCP 채팅
- async false
- TCP Socket
- dom sax 장단점
- ajax 비동기식
- Today
- Total
SooBlending
[XML] 개념 및 기본 문법 본문
< XML의 개념 >
XML(eXtensible Markup Language, 확장성 마크업 언어)
: HTML 같은 고정된 형식이 아닌 확장이 가능한 언어이다. HTML은 태그가 한정되어 있는 반면 XML은 문서의 내용에 관련된 태그를 사용자가 직접 정의할 수 있으며 그 태그를 다른 사람들이 사용하도록 할 수 있다. XML은 본질적으로 다른 언어를 기술하기 위한 언어, 즉 메타언어이다.
[1] document ::= prolog element Misc*
[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
[24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
[3] S ::= (#x20 | #x9 | #xD | #xA)+
[25] Eq ::= S? '=' S?
[26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
[27] Misc ::= Comment | PI | S
[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
<!-- comment --> (O)
<!-- com-me-nt --> (O)
<!-- com- -me-nt --> (O)
<!-- com--me-nt --> (X) 설명문내에 연속된 '--' 사용 불가!!
[39] element ::= EmptyElemTag | STag content ETag
[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
<태그명 속성명1="속성값" 속성명2="속성값" />
===============================================================
< XML문법정리 > ---> well-formed(잘 구성된) XML문서!!
1. 최소 한개이상의 element를 가져야 함.
test.xml ===> <A/>
2. 문서 전체를 감싸는 한 개의 엘리먼트(Root Element)가 있어야 함.
test.xml ===> <A/>
<B/>
===> (X)
test.xml ===> <ROOT>
<A/>
<B/>
</ROOT>
===> (O)
3. 시작태그가 있다면 그것에 매핑되는 끝태그가 반드시 존재해야 함.
태그종류)
- 시작태그 <person>
- 끝태그 </person>
- 빈태그 <person/>
예)
<root>
<br>
</root>
===> (X)
<root>
<br></br>
</root>
===> (O)
<root>
<br/>
</root>
===> (OO)
4. XML은 대소문자를 구분
<person> </Person> (X) ---> 끝태그 없음 에러 발생!!
<person> </person> (O)
5. 엘리먼트는 꼬이면 안된다.
<a>
<b></b>
<c></c>
</a>
----> (O) b,c엘리먼트(자식)는 a엘리먼트(부모)에 포함됨.
<a>
<b></b>
<c>
</a>
</c>
----> (X) a,c엘리먼트 누가 부모이고 자식인지 알 수 없음 : 에러!!
6. xml선언은 전체 생략가능하나 선언하는 것을 권장
<?xml version='1.0' encoding='UTF-8' ?>
===> version은 생략 불가
===> version속성을 먼저, encoding속성은 나중에 기술.
===> '<?xml' 앞에 공백(whitespace)을 쓰면 안됨!!!
7. 태그의 내용(content)에 제한된 문자가 있다.
===> '&' '<' ']]>'
===> 사용하면 에러
===> 해결책)
- 제한된 문자를 replace()메소드로 변환
replace('<','<')
- CDATA섹션을 사용
속성값에 제한된 문자.
===> '&' '<'
8. 속성값은 반드시 인용부호(작은 따옴표, 큰 따옴표)를 사용.
9. 서로 다른 속성은 반드시 공백을 통해 구분
<table border=1 cellpadding="5"> (X) 인용부호 없음
<table border='1'cellpadding="5"> (X) 속성명앞에 공백없음
<table border='1' cellpadding="5"> (O)
<table border='1'
cellpadding="5"> (O)
10. 주석문(설명문,comment)에 제한된 문자
===> '--'
<!-- c-o-m-m-e-n- -t --> (O)
<!-- comm--ent --> (X)
'Programming > XML' 카테고리의 다른 글
[XML] DOM 파싱 SAX 파싱 차이점 (0) | 2022.11.24 |
---|