차례:
비디오: XML Parser (DOM , SAX , JDOM , JAXB ) Sub Eng 2024
이벤트 라는 단어는 모든 종류의 이미지를 만듭니다. 프로그래머가 아닌 사람의 경우 이벤트는 "발생하는 것"입니다. "Java에서 창과 프레임을 다루는 데 익숙하다면 이벤트를 코드를 깨우는 사건으로 생각할 수 있습니다. 예를 들어, 사용자의 마우스 클릭이나 키 스트로크는 옵션을 설정하는 코드를 깨우고 OK 상자를 표시합니다. 클릭 또는 키 입력 자체는 실행중인 프로그램과 별개로 발생하기 때문에 이벤트 라고합니다. 사용자는 그 버튼을 언제 눌러야할지 알 수 있습니다. 버튼이 눌려지면 Java 프로그램의 일부가 깨어나 상황을 처리합니다. 이 시나리오를 이벤트 중심 프로그래밍 이라고합니다.
이벤트 중심 프로그래밍
SAX 프로그램은 이벤트 구동 형 입니다. 예를 들어, 숙면을 취하기 위해 잠자리에 들어갑니다. 너는 자명종을 설정하고 나서 정착하고, 눈을 감고, 여러 시간 동안 의식을 잃게된다. 그런 다음 중요한 사건이 발생합니다: 특정 시간이 도착합니다. 이벤트가 발생하면 자명종 시계는 "깨우기"모드로 들어가고 평온한 잠에서 당신을 쫓아내는 끔찍한 일을합니다.
등록 이라고합니다. 두 경우 모두 웨이크 업 서비스에 자신을 등록합니다. 등록한 후에는 여가 활동이 아닌 활동을 추구하면서 어떤 일이 일어날 때까지 모든 실제 사업을 무시할 수 있습니다. 그렇다면 …
당신의 휴대 전화가 당신에게 질겁합니다. "여보세요? " "안녕하세요. 너의 비서 야. 1 분기 판매 수치가 있습니다. 그들은 1 백만, 4 백만, 2 백만입니다. "
"보자. 그것은 총 7 백만입니다. "라고 말합니다. "나는 팜 파일럿 (PalmPilot)에 기록 할 것입니다. 감사. "당신이 전화를 끊습니다.
잠시 후 다른 전화가 걸립니다. "Big Bucks, Inc.의 사장은 그 거래를 끝내기를 원합니다. 그들은 1 천만 달러를 이야기하고 있습니다. "
이러한 각 상호 작용을
콜백 이라고합니다.이전에 조수와 함께 소원을 등록 할 때 콜백을 요청했습니다. 그런 다음 이벤트가 발생할 때마다 보조자가 콜백하여 이벤트에 대해 알려줍니다. 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 문서를 위에서 아래로 스캔합니다. 파서가 흥미로운 것을 발견 할 때마다 파서는 이벤트를 발생시키고 핸들러를 호출한다. 그런 다음,이 흥미로운 만남에 대해 뭔가를하는 것은 핸들러에게 달려 있습니다.