728x90
- Well-formed(잘 구성된) xml 문서
-
문서 안에 최소 한개 이상의 element를 가져야함
-
문서 전체를 감싸는 단 한 개의 엘리먼트(Root Element)가 존재해야 함
<A/ > <B/ > ==> X <root> <A/ > <B/ > </root> ==> O. root 이름은 변경 가능
-
시작 태그가 있다면 그것에 매핑되는 끝태그가 반드시 존재해야 함
태그종류) -시작태그 <PERSON> -끝태그 </PERSON> -빈태그 <PERSON/>
-
xml은 대소문자를 구분함 (참고: HTML은 태그명에 대소문자 구분 안함)
-
엘리먼트는 포함관계가 꼬이면 안됨
<a> <b></b> <c></c> </a> ==> O. b,c 엘리먼트(자식)는 a엘리먼트(부모)에 포함됨 b와 c는 형제관계(sibling) <a> <b></b> <c> </a> </c> ==> X. a,c 엘리먼트: 누가 부모이고 자식인지 알 수 없음
-
xml선언은 전체 생략가능하나 선언하는 것을 권장.
<?xml version='1.0' encoding="UTF-8" ?> ---------------- 현재 작성되는 XML문서내에 다국어를 사용하겠음.
- version속성은 생략불가
- 반드시 version속성을 먼저, encoding속성을 나중에 기술
- 속성값은 ' '(작은 따옴표) 또는 " "(큰 따옴표) 사용
- `<?xml` 앞에 공백(whitespace)을 쓰면 절대 안됨
-
태그의 내용(content)에 제한된 문자가 있음
-
& , < , ]]>
사용불가 -
해결책) 제한된 문자를
replace()
메소드로 변환 혹은 CDATA 섹션을 사용replace('<','%lt;')
-
속성값에 제한된 문자
& , <
-
CDSect* : Character Data Section. 문자 데이터를 표현하는 영역
-
-
속성값은 반드시 인용부호(작은, 큰따옴표)를 사용해야함
HTML의 경우) <table border=1 bgcolor=yellow></table> => O XML의 경우) <table border=1 bgcolor=yellow></table> => X <table border='1' bgcolor="yellow"></table> => O
-
서로 다른 속성은 반드시 공백을 통해 구분
-
주석문(설명문, comment)에 제한된 문자
<!--' ((Char - '-') | ('-' (Char - '-')))* '--> ------------- <!-- 설명문 --> <!-- comment --> (O) <!-- com-ment --> (O) <!-- com-me-nt --> (O) <!-- com--ment --> (X) <!-- com- -ment --> (O)
document
prolog element Misc*
XML문서의구성 ⇒ 선언 엘리먼트 기타* ⇒ 선언과 엘리먼트가 반드시 존재하여야함
prolog
XMLDecl? Misc* (doctypedec1 Misc*)?
XMLDecl
'<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
<?xml version ='1.0' ?>
버전은 생략 불가, 인코딩과 SD선언은 생략가능.
전체 정의시 순서 지킬것
⇒ <?xml version="1.0" encoding="UTF-8" ?>
Misc
Comment | PI | S
Character Reference
(#x20 | #x9 | #xD | #xA)+
----- ---- --- ----
space tab CR LF
CharData
[^<&]* - ([^<&]* ']]>' [^<&]*)
제외문자=> '<' , '&' , ']]>' // 예약된문자이기 때문
'Web develop > JDBC_XML' 카테고리의 다른 글
[XML] DOM(Document Object Model) (0) | 2019.07.10 |
---|---|
[XML] XML 정의 및 구조 (0) | 2019.07.10 |
[JDBC] Properties 사용법 및 사용예시 (0) | 2019.07.10 |
[JDBC] JDBC 프로그래밍 (0) | 2019.07.10 |
[JDBC] Swing에서 중복아이디 체크하기 (PrepareStatement 사용) (0) | 2019.06.19 |