어쩜 이런글은 지나다니다 많이 본 글인 것 같은데..
오늘도 역시 지나다가 한번 훑어보고 나중에 보기위해 포스팅합니다.

[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 편집기를 사용하라
Tag dom, DTD, dw, jslint, SAX, XML, xmllint
  1. 2008/09/24 13:18 [Edit/Del] [Reply]
    버리님~ 스터디할 자료 말고 일상적인 이야기나 사진은 안올리시나요? ^^
    블로그에서 그런거 본지 꽤 된거 같네요~ 바쁘셔서 그러신지~ ㅎㅎ
    • 2008/09/24 13:59 [Edit/Del]
      ^^어느순간 저도 모르게 그랬네요..^^
      일상적인 이야기는 궁금해하실분이 없으실 것 같아서(?)ㅎㅎ
      요즘 맘편히 블로깅하는 시간이 없었던 것 같아요(놀러다니느라..ㅎㅎ)

      이야기랑 사진 올려야죠~ ㅎㅎ 또 놀러오세요~ ㅎㅎ
  2. seattle
    2008/09/24 23:00 [Edit/Del] [Reply]
    정말 간만에 아는 이야기 나와서 히죽대고 있습니다. ㅋㅋ

    전 자알~ 지냅니다. 여기서 대답하기 -_-v
    • 버리야
      2008/09/24 23:47 [Edit/Del]
      히죽이요?ㅎㅎㅎㅎㅎㅎ 모습이 상상이 되는데요~~
      seattle님은 잘~지내고 계시는군요..ㅎㅎ

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret

[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





Tag ajax, XML
  1. seattle
    2008/05/29 11:01 [Edit/Del] [Reply]
    좋은정보 감사합니다~

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret

[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
  1. Define your XML and encoding
  2. Use a DTD or XSD
  3. Remember to validate
  4. Validation isn't always the answer
  5. XML structure versus attributes
  6. Use XPath to find information
  7. You don't always need a parser to extract information
  8. When to use SAX over DOM parsing
  9. When to DOM over SAX parsing
  10. Use a good XML editor



Tag dw, XML
  1. seattle
    2008/05/23 18:19 [Edit/Del] [Reply]
    10번 맘에 드네요. 약이 될수도, 독이 될수도 있는 항목..

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret

자바객체를 직렬화하려면 흔히 어떻게 하는 방법이 있을까요?
오픈 소스 라이브러리를 써주는 센스!를 발휘하려면 어떤 라이브러리가 있는지 알아야겠지요.
전 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방법으로 편하게 줄 수도 있군요.

대충 예제를 보니 사용하기도 쉬운것 같습니다. 직렬화할 일이 있다면 써보는게 좋을 것 같군요~
 
  1. seattle
    2008/05/22 13:55 [Edit/Del] [Reply]
    한동안 블로그에 글이 뜸해서 궁금했었는데 열공중이셨군요. 화이팅~~
  2. 2008/05/23 10:46 [Edit/Del] [Reply]
    오호... 객체 내의 객체까지 직렬화가 가능하네요.
    음... 근데 Serializable과 관계없다면 텍스트 정보(숫자/문자열)만 직렬화가 가능한 듯 하네요.

    열공하시느라 바쁘신가보네요 ^^
  3. iolo
    2008/05/23 13:45 [Edit/Del] [Reply]
    간단하게 쓰기엔 꽤 편한데... 제대로 쓸려구 하면... 역시 복잡해진다는...-.-

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret

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도 있습니다.


  1. 2007/11/26 11:38 [Edit/Del] [Reply]
    여기 올때마다 새로운 기술을 만나네요......
    멋져요.
  2. 2007/11/28 23:42 [Edit/Del] [Reply]
    버리님 이렇게 열공하시는 거 보니 대단하심과 동시에 제 자신이 부끄럽네요... ^^;;
  3. 2007/12/02 13:05 [Edit/Del] [Reply]
    일에 대한 열정이.. 부럽네요 ^-^

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret