Digester Package org.apache.commons.digester.xmlrules

황제낙엽 2008.05.13 13:28 조회 수 : 26 추천:88

sitelink1  
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  
http://commons.apache.org/digester/commons-digester-1.8/docs/api/org/apache/commons/digester/xmlrules/package-summary.htmlIntroduction
이것은 digester-rules-in-XML장의 짧은 소개이다. 이 장에서는 당신이 프로그래밍적으로 장황한 Rule객체를 생성하고 초기화 하는 대신에
XML로써 Digester rule을 정의하게 할 것이다.
부가적으로 프로그래밍적으로 생성된 rule set XML화일을 하나의 XML rule 파일로 포함할 수 있다.

Overview of digester-rules.dtd
digester-rules.dtd로 불리는 DTD는 loader가 어떻게 작동할지에 대해 정의한다.
DTD는 commons-digester.jar에 포함되어 배포된다.
또한 파일은 org/apache/commons/digester/xmlrules/digester-rules.dtd에서도 찾을 수 있다.
It is not available for download from the Apache website since users are best advised to use a copy stored on their local system.
Digester는 다음과 같은 DOCTYPE 선언으로 이 DTD를 선언한다.
< !DOCTYPE digester-rules PUBLIC
   "-//Jakarta Apache //DTD digester-rules XML V1.0//EN"
   "digester-rules.dtd" >

Rule elements:
DTD는 각각의 선언된 Digester rule에 대응하는 element type을 정의한다.
각 rule element type은 rule을 초기화하는데 필요한 values에 대한 속성들을 포함하고, 부가적인 패턴 속성은 룰에 연관하는 패턴을 열거한다. <- 모르겠어 ㅜ_ㅜ
(The DTD defines an element type corresponding to each predefined Digester rule. Each rule element type includes attributes for values needed to initialize the rule, and an optional pattern attribute specifying the pattern to associate with the rule.)
DigesterLoader 는 XML에 나타나 있는 명령으로 Digester에 rule들을 추가한다.
The use of each rule element type should be self-explanatory, if you compare them to the API documentation for the Digester rules classes.

Defining matching patterns:
The matching pattern 은 xpath같이 간단하다. the Digester uses to determine which elements to apply each rule to. See the Digester documentation for more details.
XML 파일에 rule을 정의하는 두가지 방법이 있다. 한가지는 pattern attribute내에 각 rule element에 대해 pattern을 직접 정의하는 것이다.
예를 들어 다음과 같이
      < digester-rules >
        < object-create-rule pattern="*/foo" classname="Foo"/ >
        < set-properties-rule pattern="*/foo"/ >
      < /digester-rules >

... ... ...


Including programmatically-created rules:
때때로 via XML을 쉽게 정의하기 힘들때가 있다. 프로그램적으로 생성된 Rule set은 digester-rules XML 파일에 포함될 수 있다.
이것은 class 속성을 가지는 < include > element를 사용하여 수행된다. class 속성에 정의하는 클래스는 org.apache.commons.digester.xmlrules.DigesterRulesSource
인터페이스를 상속받는다.
이 인터페이스는 하나의 메서드를 정의하고 있는데 getRules(Digester) 이다. 이 메서드는 rule을 생성하고 추가하는 역할을 가진다.
The pattern concatenation(패턴 연관) works exactly as if the rules had been included from an XML file. Example:

      File rules3.xml:
         < ?xml version="1.0"? >
         < !DOCTYPE digester-rules SYSTEM "digester-rules.dtd" >
         < digester-rules >
           < pattern value="root/foo" >
             < object-create-rule classname="Foo"/ >
             < include class="BarRuleCreator"/ >
           < /pattern >
         < /digester-rules >

BarRuleCreator class 정의:
          public class BarRuleCreator implements DigesterRulesSource {
              public void getRules(Digester digester) {
                  digester.addObjectCreate("bar", "Bar");
              }
          }

rules3.xml 을 파싱하는 것은 rules1.xml처럼 다음 같은 결과를 산출한다.
    root/foo -> ObjectCreateRule(Foo)
    root/foo/bar -> ObjectCreateRule(Bar)

... ... ...

번호 제목 글쓴이 날짜 조회 수
37 RuleXML 작성법 황제낙엽 2009.01.20 66
36 유용한 링크 황제낙엽 2009.01.20 13
35 Digester.peek(int n) 메서드의 고찰 황제낙엽 2008.08.26 13
34 Rule클래스의 작성 및 RuleXml 파일 작성 예제 file 황제낙엽 2008.05.15 16
33 Package org.apache.commons.digester Description - V1.8 (해석중) 황제낙엽 2008.05.15 83
32 Including programmatically-created rules: 의 고찰 황제낙엽 2008.05.14 12
31 Digester 의 xmlrules 를 이용하여 Properties 파일 읽어들이기 황제낙엽 2008.05.14 23
30 Parsing and Processing Large XML Documents with Digester Rules (해석중) file 황제낙엽 2008.05.13 1478
» Package org.apache.commons.digester.xmlrules 황제낙엽 2008.05.13 26
28 Digester가 제공하는 기본 Rule을 이용한 예제 프로젝트 분석 file 황제낙엽 2008.05.13 99
27 Digester 의 소개 및 기본적인 사용법 황제낙엽 2008.05.09 58
26 Parsing, indexing, and searching XML with Digester and Lucene 황제낙엽 2008.05.07 429
25 Digester란? 황제낙엽 2008.05.07 73
24 접속 클라이언트의 아이피별로 로그 화일 기록하기 file 황제낙엽 2009.06.01 183
23 영문 메뉴얼 (PDF) file 황제낙엽 2009.05.29 19
22 사용자 정의 Appender 정의하여 Log4j 확장하기 황제낙엽 2009.05.28 220
21 POI - HSSF 예제 프로젝트 file 황제낙엽 2008.05.16 32
20 POI 셀 스타일 설정을 위한 예제 소스 file 황제낙엽 2008.05.16 1379
19 POI HSSF 기능 가이드 -- 퀵·가이드 (한글) 황제낙엽 2008.05.16 373
18 POI HSSF 기능 가이드 -- 퀵·가이드 (영문) 황제낙엽 2008.05.15 144