개인 재정 SAX로 XML 이벤트를 파싱

SAX로 XML 이벤트를 파싱

차례:

비디오: XML Parser (DOM , SAX , JDOM , JAXB ) Sub Eng 2024

비디오: XML Parser (DOM , SAX , JDOM , JAXB ) Sub Eng 2024
Anonim

이벤트 라는 단어는 모든 종류의 이미지를 만듭니다. 프로그래머가 아닌 사람의 경우 이벤트는 "발생하는 것"입니다. "Java에서 창과 프레임을 다루는 데 익숙하다면 이벤트를 코드를 깨우는 사건으로 생각할 수 있습니다. 예를 들어, 사용자의 마우스 클릭이나 키 스트로크는 옵션을 설정하는 코드를 깨우고 OK 상자를 표시합니다. 클릭 또는 키 입력 자체는 실행중인 프로그램과 별개로 발생하기 때문에 이벤트 라고합니다. 사용자는 그 버튼을 언제 눌러야할지 알 수 있습니다. 버튼이 눌려지면 Java 프로그램의 일부가 깨어나 상황을 처리합니다. 이 시나리오를 이벤트 중심 프로그래밍 이라고합니다.

이벤트 중심 프로그래밍

SAX 프로그램은 이벤트 구동 형 입니다. 예를 들어, 숙면을 취하기 위해 잠자리에 들어갑니다. 너는 자명종을 설정하고 나서 정착하고, 눈을 감고, 여러 시간 동안 의식을 잃게된다. 그런 다음 중요한 사건이 발생합니다: 특정 시간이 도착합니다. 이벤트가 발생하면 자명종 시계는 "깨우기"모드로 들어가고 평온한 잠에서 당신을 쫓아내는 끔찍한 일을합니다.

다른 시나리오가 있습니다. 당신은 바쁜 경영진으로 몇 시간 동안 외출하게 될 것이지만 중요한 비즈니스를 그리워하지 않으려 고합니다. 사무실을 떠나기 전에 조교에게 "중요한 일이 있으면 전화 해. "이 명령서를 내리는 것은 자명종을 정하는 것과 비슷합니다. 이벤트가 발생하면 조수에게 알람 시계를 알려주고 있습니다. 조수 (또는 자명종)에게 요청하면

등록 이라고합니다. 두 경우 모두 웨이크 업 서비스에 자신을 등록합니다. 등록한 후에는 여가 활동이 아닌 활동을 추구하면서 어떤 일이 일어날 때까지 모든 실제 사업을 무시할 수 있습니다. 그렇다면 …

반지, 반지.

당신의 휴대 전화가 당신에게 질겁합니다. "여보세요? " "안녕하세요. 너의 비서 야. 1 분기 판매 수치가 있습니다. 그들은 1 백만, 4 백만, 2 백만입니다. "

"보자. 그것은 총 7 백만입니다. "라고 말합니다. "나는 팜 파일럿 (PalmPilot)에 기록 할 것입니다. 감사. "당신이 전화를 끊습니다.

잠시 후 다른 전화가 걸립니다. "Big Bucks, Inc.의 사장은 그 거래를 끝내기를 원합니다. 그들은 1 천만 달러를 이야기하고 있습니다. "

"흠,"당신은 대답합니다. "이것은 우리의 연간 수익을 최고 17 메가 바이트까지 끌어 올릴 것입니다. 스프레드 시트 응용 프로그램에 해당 정보를 저장합니다. 전화 주셔서 감사합니다. "

이러한 각 상호 작용을

콜백 이라고합니다.이전에 조수와 함께 소원을 등록 할 때 콜백을 요청했습니다. 그런 다음 이벤트가 발생할 때마다 보조자가 콜백하여 이벤트에 대해 알려줍니다. Java 프로그래밍 용어에서 보조자는 많은 메소드 (Java 서브 프로그램 중 하나) 중 하나를 호출합니다. 이벤트 주도 프로그래밍은 세 부분으로 구성됩니다:

등록:

이벤트가 발생할 때마다 통보 받기를 원합니다. 이 소원을 다른 코드 (다른 사람의 API의 일부인 코드 조각 등)로 가져와야합니다. 이 객체는 장면의 뒤에서 지정한 이벤트 발생을 감시합니다.

  • -> 이벤트 발생:
특정 이벤트가 발생합니다.
  • 콜백: 다른 코드가 콜백을 수행합니다. 귀하의 방법 중 하나가 호출됩니다.
  • 두 종류의 코드

활성 코드와

수동 코드를 구별하는 것이 유용합니다. 활성 코드는 주요 방법을 가지고 있습니다. 액티브 코드는 일단 실행을 시작하면 중심 단계를 밟습니다. 활성 코드는 전체 볼 게임을 제어하는 ​​실행 스레드를 포함합니다. 패시브 코드가 호출되어 기다리고 있습니다.

  • 수동 주사위 클래스는 다른 코드가 주사위를 호출 할 때까지 아무런 변화가 없습니다. 롤(). 이제 수동적 코드가 이벤트 중심 프로그래밍에 필요한 전부라고 생각할 수 있지만 그렇지 않습니다. 이벤트를 처리하려면이 등록 단계가 필요합니다. 수동 코드는 다른 코드와 함께 등록되기 시작합니다.
  • 이 등록 개념을 확고히하기 위해, 마우스, 창 및 버튼의 화면 상 세계에 대한 예를 생각해보십시오. 창이나 프레임을 만듭니다. 프레임이 마우스 클릭에 응답하게하려면 다음 명령을 실행하십시오: 버튼. addMouseListener (this);

이 명령은 버튼에 프레임을 등록합니다. 이 명령은 실제로 마우스 이벤트가 발생할 때마다

프레임 처리 방법 중 하나를 호출합니다. 나중에 사용자가 마우스를 클릭하면 프레임이 콜백을받습니다. 컴퓨터는 프레임의 mouseClicked 메서드를 호출합니다.

SAX 이벤트

물론 SAX는 이벤트 중심이지만 SAX 프로그램이 마우스 클릭을 기다리는 것은 아닙니다. 대신, SAX 코드는 지난 몇 단락에서 설명 된 register-event-callback 모델을 따릅니다. 모든 SAX 프로그램에는 두 가지 필수 코드가 있습니다. 작성한 코드 - 핸들러

라고합니다.

(핸들러는 미리 작성된 DefaultHandler 클래스를 확장 할 수 있습니다.)

  • 핸들러는 이전 섹션의 백만 달러 집행 인과 같습니다. 일반적으로 쓰지 않는 코드 조각 인 파서 .
  • 파서는 임원 보조원 역할을한다. Java 1.4 API에는 내장 된 구문 분석기가 있습니다. 이 파서의
  • 인스턴스 를 만든 다음 해당 파서 인스턴스에 처리기를 등록합니다. 실제로 이벤트가 발생할 때마다 핸들러를 다시 호출하도록 인스턴스에 지시합니다. XML과 관련이있는 모든 것이 새롭고 여전히 유동적 인 상태입니다. 이 때문에 용어는 일부 특수한 방법으로 함께 패치됩니다. SAX 버전 2를 개발하는 동안 일부 기술자에게는 새로운 이름의 축제가있었습니다. 일반적으로 "파서"라고 불리는 것은 XMLReader라는 Java 인터페이스에 구현됩니다. 이전에는 org라는 클래스가있었습니다. xml. 색소폰. 파서지만 클래스는 사용되지 않으므로 (신발 바닥면을 긁어 내야 함). 일을 좀 더 복잡하게 만들기 위해 또 다른 구문 분석 도구 인 javax이 있습니다. xml. 파서. SAXParser. 이 SAXParser를 사용하여 자신을 XMLReader로 만듭니다. 운이 좋으면이 복잡한 용어에 빨리 익숙해집니다. 지금은 "파서"라고 불리는 것을 대개 XMLReader의 인스턴스라고 기억하십시오. 등록 및 콜백 시나리오는 SAX를 이벤트 중심으로 만듭니다. 재미있는 점은 SAX 이벤트가 확실하지 않다는 것입니다. SAX 이벤트는 키 입력이나 버튼 클릭을 상기시켜주지 않습니다. SAX에서 파서는 XML 문서를 위에서 아래로 스캔합니다. 파서가 흥미로운 것을 발견 할 때마다 파서는 이벤트를 발생시키고 핸들러를 호출한다. 그런 다음,이 흥미로운 만남에 대해 뭔가를하는 것은 핸들러에게 달려 있습니다.
SAX로 XML 이벤트를 파싱

편집자의 선택

플립 비디오 인형 치트 시트 - 인형

플립 비디오 인형 치트 시트 - 인형

플립 비디오 캠코더는 가장 사용하기 쉬운 캠코더입니다. 세계. 플립 비디오를 사용하면 비디오를 가리키고 촬영 한 다음 컴퓨터로 비디오를 복사 할 수 있습니다. 몇 번의 클릭 후, 당신은 Facebook, MySpace 및 YouTube에서 귀하의 작품을 과시하고 있습니다. Flip의 버튼을 해독함으로써 비디오를 고통없이 촬영하는 방법을 찾으십시오. 알아보기 ...

귀하의 디지털 필름에 대한 개인 상영 - 인형

귀하의 디지털 필름에 대한 개인 상영 - 인형

오늘, DSLR 필름 심사. HD가 장착 된 정교한 대형 스크린 TV는 여러 스피커의 서라운드 사운드 스테레오와 함께 아주 좋은 간식을 제공합니다. 따라서 영화 밤을 장소에서 쉽게 주최 할 수 있으며 영화관에 갈 수도 있습니다. ...

디지털 영화에 정적 제목을 추가하는 방법 - 인형

디지털 영화에 정적 제목을 추가하는 방법 - 인형

초연 요소는 다양한 선택을 제공합니다 DSLR 영화의 타이틀 선택 항목, 하위 3 분의 1 로케이터 정보. 로케이터 정보는 뉴스 세그먼트 및 다큐멘터리에서 장면의 사람이나 장소를 설명하는 데 사용되는 ID와 같습니다. 사람의 경우 이름과 설명이라는 두 줄로 구성됩니다. 예를 들어, Charles Dickens / Writer, ...

편집자의 선택

관계 속의 분노를 다루는 - 인형

관계 속의 분노를 다루는 - 인형

우리 모두는 때때로 파트너들과 화를 낸다. 분노가 당신과 당신의 관계에 미치는 파괴적인 영향을 최소화하는 데 도움이되는 다음 요령을 시도하십시오. 당신이 분노의 징후를 처음 알기 시작할 때, 당신의 파트너에게 무슨 일이 일어나는지 물어보십시오. 화가 난 사람을 상처 입히려 고합니다.

자폐증 진단의 영향 - 인형

자폐증 진단의 영향 - 인형

자폐아를 찾는 것이 매우 어렵습니다. 앞으로의 길은 쉬울 것이라고 아무도 말할 수 없습니다. 자녀의 생년월일과 본인의 생년월일에 관한 스크립트를 다시 작성해야 할 수도 있습니다. 당신은 지금 다루어야 할 새로운 쟁점, 압박 및 결정들을 가지고 있습니다. 그리고 주변 사람들은 ...

당신이 종속인지 결정하기 - 인형

당신이 종속인지 결정하기 - 인형

다음 증상 목록에서 확인하십시오. 당신은 모두가 공손 할 필요는 없으며, 코펜던트의 심각성 정도가 있습니다. 치료를하지 않으면 시간이 지남에 따라 코드 종속성이 악화되지만 도움을 받아 복구 할 수 있고 작업에서 훨씬 더 효과적 일 수 있습니다 ...

편집자의 선택

짧은 명상 묵상 시도 - 인형

짧은 명상 묵상 시도 - 인형

당신의 마음을 집중할 수있는 능력은 마음 챙김 명상을 통해 가장 강력하게 개발됩니다. Mindfulness 명상 중 하나는 호흡의 mindfulness입니다. 이것은 숨을 의식적으로 인식하는 것입니다. 명상을 스스로 시도하려면 다음 단계를 따르십시오. 자신의 호흡 감을 알아야합니다. 변경할 필요가 없습니다 ...

마음가짐의 세 측면 - 인형

마음가짐의 세 측면 - 인형

마음가짐은 세 가지 측면으로 주의 깊은 인식. 이 목록을 인쇄하여 핀이 무엇인지 생각 나게하십시오. 의도 - 당신의 의도는 당신이 마음가짐을 연습함으로써 얻고 자하는 것입니다. 스트레스를 줄이고 감정적 인 균형을 유지하거나 발견 할 수 있습니다.

다른 명상을 시도하십시오 - 인형

다른 명상을 시도하십시오 - 인형

명상 확장이라는 인식은 명상 확장의 중심에 있습니다. Mindfulness 명상 연습. 앉는 자리는 수천 년 동안 명상을 위해 그리고 정당한 이유로 사용되었습니다. 어떻게 평소에 앉아 있니? 당신이 대부분의 사람들과 비슷하다면, 아마 의자 나 소파 뒤에 기대어집니다. 네가 괜찮다면 ...