[dW] XML을 사용하는 좋은 습관 열가지
Posted at 2008/09/24 10:34// Posted in 나만의 작업/dW어쩜 이런글은 지나다니다 많이 본 글인 것 같은데..
오늘도 역시 지나다가 한번 훑어보고 나중에 보기위해 포스팅합니다.
[dW] XML을 사용하는 좋은 습관 열가지
1. XML과 인코딩을 정의하라
<?xml version="1.0" encoding="us-ascii"?> 이런식으로 써주면 XML 구문분석기가 문서를 잘못 분석할 가능성을 줄일 수 있다.
2. DTD 또는 XSD를 사용하라
DTD를 정의하면 XML 문서 구조를 검증해 문제를 찾아내기 쉬워진다.
일부 XML 편집기는 자동 완성 기능에 DTD를 요구하는 반면, 스키마를 사용하면 실제 문서 구조를 설계하기가 훨씬 편리해진다. DTD를 사용할지 XSD를 사용할지 여부는 개발자가 처한 상황에 달렸다.
3. 항상 검증하라
JSLint는 자주 쓰는데 xmllint도 있군요. Validation
xmllint는 libxml2 툴킷에 포함되며, libxml2 툴킷은 리눅스, 유닉스(UNIX®), 맥 OS X에 기본적으로 들어있고, 윈도(Windows®) 플랫폼에서는 별도로 툴킷을 내려받아야 한다고 하군요.
4. 때로는 검증으로 부족하다
5. 엘리먼트냐 속성이냐
쓸 때 맨날 고민하는 것 중 하나.. 엘리먼트로 할까? 속성으로 할까?
의견이 분분한데 이 문서에선
"일반적으로는 파일 내부에서 엘리먼트를 사용해 정보를 기술하는 편이 낫다. 즉, 자료를 태그 사이에 정의하는 편이 낫다. 속성은 기술하고자 하는 자료에 조건을 추가할 때 사용해야 한다." 이렇다고 한다.
6. XPath를 활용해 정보를 찾자
7. 정보 인출을 위해 반드시 구문분석기를 사용할 필요는 없다
8. SAX가 DOM보다 나은 경우
문서가 크거나 문서를 변환할 생각이라면 SAX가 낫다.
반면, 구조를 저장하거나 기록하려는 경우에는 SAX가 적합하지 못하다. 또는 문서 전체를 이해한 다음에 문서에서 특정 정보를 추출하려는 경우에도 (예를 들어, 전체 문서에서 연락처 하나만 찾는 경우에도) 마찬가지다.
이 때는 XML 문서 전체를 읽어 자료 구조를 판독한 후 (필요에 따라) 엘리먼트를 출력하는 복잡한 처리 과정을 구현해야 한다.
9. DOM이 SAX보다 나은 경우
DOM은 XML 구조를 보존하고 이해하므로 응용 프로그램에서 구조 전체나 개별 엘리먼트를 쉽게 참조하고 조작할 수 있다.
반면, DOM은 파일을 스트림으로 처리하기 어렵다는 단점이 있다.
또한 DOM은 문서 전체를 메모리로 읽어들이므로 속력이 느려지고 메모리가 많이 필요하다. 반면, 문서 전체를 분석해 메모리에 보존하므로 장점도 존재한다.
10. 좋은 XML 편집기를 사용하라
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 자바스크립트 개발 툴킷(JSDT) 살펴보기 (2) | 2008/10/30 |
|---|---|
| [dW] 자바로 만든 자바스크립트 엔진, 리노 (4) | 2008/10/29 |
| [dW] 다시 보는 자바스크립트의 역사 (2) | 2008/10/28 |
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
[dW] Ajax에서 XML 처리하기
Posted at 2008/05/28 10:18// Posted in 나만의 작업/dW
Ajax에서 XML처리하는 일이 많은데 저는 DOM트리를 탐색해서 필요한 정보를 추출하여
HTML로 변환을 하여 DIV 태그에 넣는 방법을 주로 사용하는데
이렇게 하다보면 필요한 정보의 태그를 찾아가는 과정이 복잡합니다.
Element안에 Element안에 Element가 있을경우..그외에 더 복잡한 경우도 많겠지요.
XSLT를 사용해 XML을 HTML로 변환하는 방법(서버쪽에서 XML을 HTML로 변환할지, 클라이언트쪽에서 변환할지..)
그리고 JSON과 동적 스크립트 태그를 이용해 XML처리하는 방법이 있군요.
XML processing in Ajax, Part 1: Four approaches
XML processing in Ajax, Part 2: Two Ajax and XSLT approaches
XML processing in Ajax, Part 3: JSON and avoiding proxies
HTML로 변환을 하여 DIV 태그에 넣는 방법을 주로 사용하는데
이렇게 하다보면 필요한 정보의 태그를 찾아가는 과정이 복잡합니다.
Element안에 Element안에 Element가 있을경우..그외에 더 복잡한 경우도 많겠지요.
XSLT를 사용해 XML을 HTML로 변환하는 방법(서버쪽에서 XML을 HTML로 변환할지, 클라이언트쪽에서 변환할지..)
그리고 JSON과 동적 스크립트 태그를 이용해 XML처리하는 방법이 있군요.
XML processing in Ajax, Part 1: Four approaches
XML processing in Ajax, Part 2: Two Ajax and XSLT approaches
XML processing in Ajax, Part 3: JSON and avoiding proxies
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
|---|---|
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
[dW] Learn 10 good XML usage habits
Posted at 2008/05/23 10:50// Posted in 나만의 작업/dW"XML을 사용할때 좋은 10가지 습관(관습)"이라는 글을 우연히 보았는데 당연한 것도 있고,
알지만 안쓰게 되는 점들도 있군요.Learn 10 good XML usage habits
- Define your XML and encoding
- Use a DTD or XSD
- Remember to validate
- Validation isn't always the answer
- XML structure versus attributes
- Use XPath to find information
- You don't always need a parser to extract information
- When to use SAX over DOM parsing
- When to DOM over SAX parsing
- Use a good XML editor
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
|---|---|
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
[dW] XStream으로 자바 객체를 XML로 직렬화하기
Posted at 2008/05/22 00:24// Posted in 나만의 작업/dW
자바객체를 직렬화하려면 흔히 어떻게 하는 방법이 있을까요?
오픈 소스 라이브러리를 써주는 센스!를 발휘하려면 어떤 라이브러리가 있는지 알아야겠지요.
전 dW에 번역글이 올라와서 알게 된 XStream이 있는데 정말 몇줄로 자바객체를 XML로 직렬화 시켜주는 군요.
[dW] XStream으로 자바 객체를 XML로 직렬화하기
이곳을 참조하면, 이클립스 프로젝트에서 클래스를 생성해서 단 몇줄로 자바객체를 XML로 직렬화하는 방법이 나와있습니다. 친절하게 이클립스의 스크린샷까지..
XStream 사이트에 가보면 제일 첫 화면에 보이는"XStream" is a simple library to serialize objects to XML and back again.
정말 심플한 라이브러리일까? 한번 소스를 봐보면..
XStream을 사용하면 XML 객체를 직렬화 하는 방법도 있고, 역직렬화하는 방법(XML을 읽어서 프로그래밍하고싶을때 사용한다면..)도 있고
기본적으로 역직렬화를 하다보면 XStream방식으로 "com.thoughtworks.xstream." element 이름으로 나오는 경우가 있는데 이때는 alias를 줘서 원하는 방식으로 바꾸는 방법도 있고, 또 annotation방법으로 편하게 줄 수도 있군요.
대충 예제를 보니 사용하기도 쉬운것 같습니다. 직렬화할 일이 있다면 써보는게 좋을 것 같군요~
오픈 소스 라이브러리를 써주는 센스!를 발휘하려면 어떤 라이브러리가 있는지 알아야겠지요.
전 dW에 번역글이 올라와서 알게 된 XStream이 있는데 정말 몇줄로 자바객체를 XML로 직렬화 시켜주는 군요.
[dW] XStream으로 자바 객체를 XML로 직렬화하기
이곳을 참조하면, 이클립스 프로젝트에서 클래스를 생성해서 단 몇줄로 자바객체를 XML로 직렬화하는 방법이 나와있습니다. 친절하게 이클립스의 스크린샷까지..
XStream 사이트에 가보면 제일 첫 화면에 보이는
"XStream" is a simple library to serialize objects to XML and back again.
정말 심플한 라이브러리일까? 한번 소스를 봐보면..Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));String xml = xstream.toXML(joe);
이렇게 대략 프로그래밍을 하면 XML결과는..(물론 Person 객체가 존재해야겠지요)
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
XStream을 사용하면 XML 객체를 직렬화 하는 방법도 있고, 역직렬화하는 방법(XML을 읽어서 프로그래밍하고싶을때 사용한다면..)도 있고
기본적으로 역직렬화를 하다보면 XStream방식으로 "com.thoughtworks.xstream." element 이름으로 나오는 경우가 있는데 이때는 alias를 줘서 원하는 방식으로 바꾸는 방법도 있고, 또 annotation방법으로 편하게 줄 수도 있군요.
대충 예제를 보니 사용하기도 쉬운것 같습니다. 직렬화할 일이 있다면 써보는게 좋을 것 같군요~
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
|---|---|
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
| [dW] 클래스 로딩 문제 분석하기 (4) | 2008/03/04 |
-
-
2008/05/23 10:46 [Edit/Del] [Reply]오호... 객체 내의 객체까지 직렬화가 가능하네요.
음... 근데 Serializable과 관계없다면 텍스트 정보(숫자/문자열)만 직렬화가 가능한 듯 하네요.
열공하시느라 바쁘신가보네요 ^^ -
XML to JSON
Posted at 2007/11/24 00:30// Posted in 나만의 작업예전에 만들어놓은 XML파일을 JSON 형식으로도 만들어주기 위해
XML을 JSON으로 바꾸는 작업을 하다가,
XML을 흔히 JSON으로 많이 바꾸지 않나,, 그러면 뭔가 툴이 있지 않을까?
하고 구글신께 여쭈어보니,
아주 깔끔한 Javascript parser가 있습니다.
Thomas Frank 분이 만드신거 같은데,
블로그에 가보니 아주 편리하게 XML을 넣으면 JSON으로 바꾸어 결과를 보여줍니다.
Javascript를 다운로드 할 수 도 있습니다.
GNU 에 의한 free software입니다. 소스를 받아보니 170줄의 코딩이 있더군요
제가 간단한 XML을 넣어본 결과 JSON으로 잘 변환해줍니다.
하지만, depth가 깊은 XML은 테스트 안해봐서 잘은 모르겠지만,
당분간은 유용할 듯 합니다~
부록으로 JSON Editor도 있습니다.
'나만의 작업' 카테고리의 다른 글
| 윈도우용 launcy (0) | 2008/08/31 |
|---|---|
| hello! blogger 대한민국 블로거 컨퍼런스 참가신청 (6) | 2008/03/05 |
| J2EE의 소프트웨어 디자인 원칙 (8) | 2008/01/17 |
| 티스토리에서 Syntaxhighlighter를 이용하기 (12) | 2007/12/04 |
| XML to JSON (6) | 2007/11/24 |
| 구글꺼야? SearchMash (16) | 2007/10/30 |
| 5회 스프링 프레임웍 사용자 모임에 다녀왔습니다. (10) | 2007/10/28 |
| Google Developer Night에 다녀와서,, (14) | 2007/10/17 |
| 다음(Daum) 검색창에서 "@버리"를 쳐보세요 (16) | 2007/10/11 |



블로그에서 그런거 본지 꽤 된거 같네요~ 바쁘셔서 그러신지~ ㅎㅎ
일상적인 이야기는 궁금해하실분이 없으실 것 같아서(?)ㅎㅎ
요즘 맘편히 블로깅하는 시간이 없었던 것 같아요(놀러다니느라..ㅎㅎ)
이야기랑 사진 올려야죠~ ㅎㅎ 또 놀러오세요~ ㅎㅎ
전 자알~ 지냅니다. 여기서 대답하기 -_-v
seattle님은 잘~지내고 계시는군요..ㅎㅎ