개인 재정 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 이벤트를 파싱

편집자의 선택

Photoshop Elements 11 - Stone

Photoshop Elements 11 - Stone

을 사용하여 Stone Out을 조각하는 방법 Photoshop Elements 11의 도구를 입력하여 텍스트와 같은 모양의 선택 영역을 만든 다음 이미지 자체를 해당 유형의 채우기로 사용합니다. 예를 들어 꽃 테마 웹 페이지를 만드는 경우 꽃 그림을 텍스트 채우기로 사용할 수 있습니다. 유형 선택을 사용하면 모든 부분을 잘라낼 수 있습니다.

Photoshop Elements 9에서 여러 파일을 일괄 처리하는 방법 - 여러 개의 인형이있는 경우

Photoshop Elements 9에서 여러 파일을 일괄 처리하는 방법 - 여러 개의 인형이있는 경우

여러 파일에 공통적으로 적용 할 편집 기능을 사용하면 Photoshop Elements에서 이러한 변경 사항을 일괄 적으로 처리 할 수 ​​있습니다. 단일 메뉴 명령을 사용하여 파일 형식을 변경하고 파일 속성을 변경하고 공통 파일 기본 이름을 추가 할 수 있습니다. 파일 이름 바꾸기는 내보내기 명령의 일부일 수도 있고 사용할 수도 있습니다.

편집자의 선택

승마 2012 런던 하계 올림픽 - 인형

승마 2012 런던 하계 올림픽 - 인형

승마 (말의 화려한 이름) 경쟁 런던 2012 하계 올림픽은 조련사, 이벤트 및 점프의 세 가지 분야로 구성됩니다. 각 분야는 팀과 개인 메달을위한 기회를 제공합니다. 대회는 7 월 28 일부터 31 일까지 개최됩니다. 조련사 경연 대회는 8 월 2 일부터 9 일까지 개최됩니다. 점프 대회는 ...

동계 올림픽에서의 자유형 스키 - 인형

동계 올림픽에서의 자유형 스키 - 인형

프리 스타일 스키는 동계 올림픽의 X 게임 이벤트 중 하나입니다. . 자유형 스키에서는 경쟁자가 언덕 꼭대기에서 바닥까지 다양한 행사를 수행합니다. 프리 스타일 스키는 기술 스키의 가장 중요한 부분을 차지하며 스노우 보드에서 트릭을 만들어내는 기술과 결합되어 있습니다.

필드 2012 런던 하계 올림픽의 이벤트 - 인형

필드 2012 런던 하계 올림픽의 이벤트 - 인형

스프린트, 릴레이 및 도로 경주 이외에도 2012 런던 하계 올림픽 육상 경기에는 점프 및 던지기 경기가 포함됩니다. 남자와 여자는 높은 점프, 긴 점프, 트리플 점프, 장대 높이뛰기 등의 4 가지 점프 이벤트와 총구, 원반, 창 던지기 및 망치와 같은 네 가지 투구 이벤트에서 경쟁합니다. 필드 이벤트 ...

편집자의 선택

Excel의 유용한 범위 객체 메소드 2016 VBA 프로그래밍 - VBA 메소드가 수행하는

Excel의 유용한 범위 객체 메소드 2016 VBA 프로그래밍 - VBA 메소드가 수행하는

엑셀 2016의 액션. Range 객체는 수십 개의 메소드를 가지고 있지만, 이들 중 대부분은 필요하지 않습니다. 여기서는 가장 일반적으로 사용되는 Range 객체 메소드를 찾습니다. Select 메서드 Select 메서드를 사용하여 셀 범위를 선택합니다. 다음 문은 ...

시나리오 관리자를 사용하여 대출 계산 모델링 방법 - 더미

시나리오 관리자를 사용하여 대출 계산 모델링 방법 - 더미

시나리오 관리자는 목표 탐색 데이터 탭의 가정 분석 섹션에 데이터 테이블이 있습니다. 다른 유용한 도구와 함께 그룹화하면 시나리오 관리자가 중요한 도구임을 믿게 될 것입니다. 그러나 유용한 이름과 좋은 회사가 있음에도 불구하고 ...

더 나은보고 모델을 위해 Power Query와 Power Pivot을 함께 사용 - Power Pivot을 사용하여 더미

더 나은보고 모델을 위해 Power Query와 Power Pivot을 함께 사용 - Power Pivot을 사용하여 더미

Power Query를 함께 사용하면 관리 및 유지 보수가 쉬운보고 모델을 만들 수 있습니다. 보고 모델은보고 메커니즘이 구축되는 기초를 제공합니다. 데이터를 가져오고, 변환하고, 모양을 만들고, 집계하는보고 프로세스를 작성하면 본질적으로보고 모델을 구축하게됩니다. 잘못 작성하는 중 ...