xml이 사용되는 용도. XML이 필요한 이유는 무엇입니까? XML 파일용 온라인 편집기 사용

XML을 사용하여 데이터를 서버로 전송하는 기술을 고려하십시오.

우리는 이미 서버로 데이터를 전송하는 두 가지 방법을 고려했습니다. 구분 기호와 JSON이 있는 일반 텍스트입니다. 그러나 단점이 있습니다.

  • 데이터 유형이 부족합니다. JSON에는 문자열, 숫자, null, 부울만 있습니다. 저것들. 제한된 데이터 세트.
  • 전송된 데이터의 무결성을 제어하는 ​​것은 어렵습니다.
  • 데이터를 시각화하는 것은 어렵습니다. 예를 들어 복잡한 개체는 표시하기 어렵습니다. HTML 형식암호.
  • 데이터를 변환하는 것은 어렵습니다. 한 개체의 속성을 다른 개체의 속성으로 변환하는 것은 어렵습니다.

이제 데이터를 전달하는 방법으로 XML을 살펴보겠습니다. XML(eXtensible Markup Language) - 구조화된 데이터를 설명, 저장 및 전송하도록 설계된 마크업 언어입니다. 오늘날 XML은 모든 곳에서 사용됩니다.

XML을 기반으로 하는 많은 기술이 있습니다. DOM(데이터와의 프로그래밍 방식 상호 작용), XLink(포인터 및 링크), XPath(요소 설명 및 선택), XSL, XSLT(XML 문서 변환).

XML 패키지를 구문 분석하면 다음과 같습니다.

// XMLHttpRequest 객체 var req= getXmlHttpRequest(); //핸들러 설치요구 onreadystatechange= function () ( if (req. readyState== 4 ) ( //상태 "4 - 완료" var xml = 요구 사항. 응답XML; ))

여기서 직렬화 및 역직렬화도 수행할 필요가 없습니다. 이것은 객체 자체에 의해 수행됩니다. 서버가 XML 데이터를 보내자 마자 이미 구문 분석됩니다(responseXML - DOM 문서 모델). 사이트의 이전 기사에서 DOM 기술에 대해 자세히 읽어보십시오.

때때로 디버깅을 위해 XML 데이터를 직렬화 및 역직렬화해야 합니다(서버에 데이터를 전송하려면 이 작업이 자동으로 수행되므로 수동으로 수행할 필요가 없습니다). 문자열로 직렬화합시다:

//IE의 경우 var str = dom. xml // Firefox용 var serializer = new XMLSerializer(); var str = 직렬 변환기. 직렬화ToString(돔);

IE의 경우 작업 코드가 더 짧습니다. 직렬화를 위한 객체가 이미 내장되어 있는 반면 다른 브라우저에는 직렬화를 위한 XMLSerializer 객체만 있습니다.

작업할 때 XML 데이터일반적으로 우리는 문서의 DOM 모델을 다루고 있습니다. 따라서 DOM의 몇 가지 사항을 기억할 가치가 있습니다(이전 기사에서 이에 대해 읽어보기). 모델의 DOM 요소에 액세스하는 방법만 상기시켜 드리겠습니다.

//루트 요소 var 루트 = xmlDOM. 문서 요소; // 컬렉션의 첫 번째 요소 varbook = 루트. 자식노드[ 0 ]; //자식 요소 var 제목 = 책. 자식노드[ 0 ]; // 요소 텍스트 노드경고(title.firstChild.nodeValue);

문서 모델의 DOM에서 동일한 유형의 요소를 선택할 수도 있습니다. 주목! getElemensById 함수 - 아니요, 왜냐하면 XML에서 id는 식별자뿐만 아니라 모든 것을 의미할 수 있으므로 사용하지 않습니다.

//같은 태그를 가진 모든 요소 선택 var 책 = xmlDOM. getElementsByTagName("책");

XML은 데이터를 나타낼 뿐만 아니라 서버 지향 아키텍처에서 데이터를 교환하는 데에도 적극적으로 사용됩니다. 이것은 복잡한 응용 프로그램을 고전적인 클라이언트-서버 응용 프로그램이 아니라 각각 고유한 작업을 담당하는 서비스(서비스) 집합으로 제시하는 접근 방식입니다. 그리고 모든 서비스에는 진입점(상호작용 지점)이 있습니다. 여기에 명확한 고객이 없습니다. 왜냐하면 한 서비스는 다른 서비스의 클라이언트가 될 수 있습니다. 그러한 분산 기술이 밝혀졌습니다. 원격 프로시저 호출, SOAP와 같은 기술을 구축하는 방법에는 여러 가지가 있습니다.

서로 다른 클라이언트의 서비스가 상호 작용하려면 동일한 언어를 사용해야 합니다(어느 쪽이든 상관 없습니다. 운영 체제서비스에서). 그리고 그러한 언어가 개발되어 RPC라고 명명되었습니다.

XML-RPC 프로토콜

RPC(원격 호출 절차)는 원격 프로시저 호출입니다. 두 원격 지점 간의 통신 프로토콜입니다. "a" 지점이 원격 지점 "b"에서 함수를 호출할 수 있도록 합니다.

RPC 프로토콜에는 여러 가지 구현이 있습니다. XML 기반 구현을 고려하십시오.

사실, 클라이언트와 서버는 단순히 일부 XML 조각을 교환합니다.

XML-RPC는 다음 데이터 유형을 제공합니다.

  • 부울.
  • 정수.
  • 더블.
  • 끈.
  • 날짜 시간.
  • 베이스64.
  • 정렬.
  • 구조
  • 없는.

저것들. 특정 데이터 형식을 전달할 때 어떤 종류의 데이터인지 선언해야 합니다. 구조는 JSON 객체와 같습니다.

XML 데이터 변환

XSLT는 서버에서 받은 데이터를 XML로 변환하는 데 사용됩니다.

XSLT(eXtendable Stylesheet Language Transformation)은 XML을 입력으로 가져오고 출력에서 ​​무엇이든 형성하는 데 도움이 되는 기술입니다.

XSLT를 자바스크립트로 변환 - IE

var dom = 새로운 ActiveXObject("MSXML2.DOMDocument"); 돔 비동기=거짓 dom var xsl = 새로운 ActiveXObject(" [이메일 보호됨]" ); xsl.async = 거짓; xsl.load("my.xsl" ); //변환 자체 varresult = 돔. 변환노드(xsl);

XSLT를 Firefox용 JavaScript로 변환합니다. 크롬, 오페라

varxsl스타일시트; var xsltProcessor var myXMLHTTPRequest = mew XMLHttpRequest(); myXMLHTTP요청. open("GET" , "example.xsl" , false); myXMLHTTP요청. 보내기(널); // xml xslStileshett = myXMLHTTPRequest를 가져옵니다. 응답XML; xsltProcessor myXMLHTTPRequest = 새로운 XMLHttpRequest(); myXMLHTTP요청. open("GET" , "example.xml" , false); myXMLHTTP요청. 보내기(널); //변환 자체 var xmlSource = myXMLHTTP요청. 응답XML; var 결과 문서 = xsltProcessor. 변환 문서(xmlSource);

XML(Extensible Markup Language). 문서의 구조 및 기타 기능을 설명하기 위해 사용자 정의 태그를 사용하는 텍스트 파일입니다.

XML이란 무엇입니까?

XML W3C(World Wide Web Consortium)에서 사람과 기계가 읽을 수 있는 문서의 인코딩 구문을 정의하기 위해 만든 마크업 언어입니다. 문서 구조와 문서 저장 및 전송 방법을 정의하는 태그를 사용하여 이 작업을 수행합니다.

이를 비교하는 가장 쉬운 방법은 친숙한 다른 마크업 언어와 비교하는 것입니다. 하이퍼텍스트 마크업(HTML) 웹 페이지를 인코딩하는 데 사용됩니다. HTML은 웹 페이지의 콘텐츠 형식을 설명하는 미리 정의된 일련의 마크업 문자(짧은 코드)를 사용합니다.

그러나 XML의 차이점은 확장 가능하다는 것입니다. XML에는 HTML처럼 미리 정의된 마크업 언어가 없습니다. 대신 XML을 사용하면 사용자가 콘텐츠를 설명하는 고유한 마크업 문자를 만들어 무제한의 자체 정의 문자 집합을 형성할 수 있습니다.

기본적으로 HTML은 콘텐츠 표시에 중점을 둔 언어인 반면 XML은 데이터를 저장하는 데 사용되는 전용 데이터 설명 언어입니다.

XML은 수백 가지가 있는 다른 문서 형식의 기반으로 자주 사용됩니다. 다음은 알고 싶은 몇 가지 사항입니다.

  • RSS 및 ATOM은 응용 프로그램이 피드를 처리하는 방법을 설명합니다.
  • Microsoft .NET은 구성 파일에 XML을 사용합니다.
  • 마이크로 소프트 오피스 XML을 문서 구조의 기초로 사용합니다.

따라서 XML 파일이 있는 경우 파일이 어떤 응용 프로그램에 사용되는지 반드시 알려주지는 않습니다. 그러나 XML 파일을 개발하지 않는 한 이에 대해 걱정할 필요가 없습니다.

XML 파일을 여는 방법

XML 파일을 직접 여는 방법에는 여러 가지가 있습니다. 어떤 텍스트 편집기로든 열고 편집할 수 있고, 모든 웹 브라우저에서 보거나, 보고, 편집하고, 다른 형식으로 변환할 수 있는 웹사이트를 사용할 수도 있습니다.

정기적으로 XML로 작업할 때 텍스트 편집기 사용

XML 파일은 일반 텍스트 파일이기 때문에 모든 텍스트 편집기에서 열 수 있습니다. 그러나 메모장과 같은 많은 텍스트 편집기는 XML 파일을 올바른 구조로 표시하도록 설계되지 않았습니다. 이것은 XML 파일의 내용에 빠르게 익숙해지는 데 유용할 수 있습니다. 그러나 작업에 더 편리한 도구가 있습니다.


웹 브라우저를 사용하여 XML 파일 보기

XML 파일을 편집할 필요가 없고 콘텐츠를 보기만 하면 되는 경우 브라우저에서 작업을 처리할 수 있습니다. 또한 웹 브라우저는 이미 다음과 같이 구성되어 있을 가능성이 큽니다. 표준 치료법 XML 파일 보기. 따라서 XML 파일을 두 번 클릭하면 브라우저에서 열어야 합니다.

그렇지 않은 경우 파일을 마우스 오른쪽 버튼으로 클릭하여 다른 응용 프로그램에서 열 수 있는 옵션을 찾을 수 있습니다. 프로그램 목록에서 웹 브라우저를 선택하기만 하면 됩니다.

파일이 열리면 잘 구성된 데이터가 표시되어야 합니다. Notepad++에서 보는 색상만큼 예쁘지는 않지만 메모장보다는 훨씬 낫습니다.

XML 파일용 온라인 편집기 사용

임의의 xml 파일을 편집하고 새 파일을 업로드하고 싶지 않은 경우 텍스트 에디터, 또는 당신이 필요 xml 파일을 다른 형식으로 변환, 무료로 사용할 수 있는 몇 가지 괜찮은 온라인 XML 편집기가 있습니다.

TutorialsPoint.com, XMLGrid.net 및 CodeBeautify.org - XML ​​파일을 보고 편집할 수 있습니다. 편집이 완료되면 수정된 XML 파일을 업로드하거나 다른 형식으로 변환할 수도 있습니다.

CodeBeautify.org를 예로 들어 보겠습니다. 페이지는 세 부분으로 나뉩니다. 왼쪽에는 작업 중인 XML 파일이 있습니다. 중간에 여러 기능을 찾을 수 있습니다. 오른쪽에는 선택할 수 있는 일부 옵션의 결과가 표시됩니다.

예를 들어 아래 이미지에서 전체 XML 파일은 왼쪽에 있고 결과 창에는 중간에 있는 트리 보기 버튼을 클릭했기 때문에 트리 보기가 표시됩니다.

찾아보기 버튼을 사용하여 컴퓨터에서 XML 파일을 로드하거나 URL 로드 버튼을 사용하여 인터넷 소스에서 XML을 검색합니다.

트리 보기 버튼은 모든 태그가 주황색으로 강조 표시되고 속성이 태그 오른쪽에 있는 올바른 형식의 트리 구조로 데이터를 결과 창에 표시합니다.

Beatify는 데이터를 깔끔하고 읽기 쉬운 방식으로 표시합니다.

축소 버튼은 최소한의 공간을 사용하여 데이터를 표시합니다. 이 함수는 모든 단일 데이터 조각을 한 줄에 배치합니다. 이것은 파일을 더 작게 만들 때 유용하여 공간을 절약할 수 있습니다.

마지막으로 XML을 JSON으로 버튼을 사용하여 XML을 JSON 형식으로 변환하고 CSV로 내보내기 버튼을 사용하여 데이터를 쉼표로 구분된 값 파일로 저장하거나 다운로드 버튼을 사용하여 변경 사항을 다운로드할 수 있습니다. 새 XML 파일. .

왜 필요한지 이미 이해하고 있다고 생각합니다. HTML(네, HTML). 브라우저에 데이터를 표시하는 데 필요합니다. 즉, 있다 HTML 코드그리고 이에 해당하는 HTML 코드특정 종류. 하지만, 현대 경향데이터 표시뿐만 아니라 유능한 내부 구조도 필요합니다.

그게 다야 구조를 만들고 XML 언어가 있습니다.. 간단한 예:

녹색 사과

우리 사람들에게는 모든 것이 즉시 명확해집니다. 바로 머릿속에 이미지가 떠오른다. 녹색 사과"그러나 이것이 오렌지, 사람 또는 우리 은하가 아닌 사과라고 컴퓨터에 설명하는 방법은 무엇입니까? 여기에서 다시 구출됩니다. XML, 태그를 생성할 수 있는 곳에서 사과는 어디에 있고 오렌지는 어디에 있고 사람은 어디에 있고 우리 은하가 어디에 있는지 분명히 합니다. 나는 내가 명확하게 설명했기를 바랍니다.

이제 가장 중요한 것에 대해. XML의 주요 기능은 보편성입니다.. 즉 XML무엇이든 이해한다 현대 언어. 이후 XML은 텍스트 파일입니다., 그런 다음 일반 메모장에서 작업할 수 있습니다. 이제 구체적으로 실천하기 위해, XML이 사용되는 곳:

  • 설정 파일. 설정 XML 파일읽고 쓰기가 매우 쉽습니다. 이러한 이유로 수백 개의 XML 파일.
  • 데이터 브리지다른 언어로 작성된 프로그램 사이. 매우 중요한 기능, 언어의 보편성으로 인해 복잡한 시스템에서 정기적으로 사용됩니다.
  • 데이터 저장고. 사실, 이것은 일종의 데이터베이스 유사체이지만 필요하지 않습니다. DBMS(예를 들어, MySQL). 그리고 쿼리 언어 덕분에 XPath이 "로 쉽게 의사 소통이 가능하게됩니다. 데이터 베이스".

그리고 마지막으로, 내 자신의 연습에서 가장 간단한 예를 들 수 있습니다. 내 사이트에 XML 사이트맵이 있습니다. 사이트의 모든 페이지에 대한 링크가 있습니다. 이것은 좋은 사이트 인덱싱에 매우 편리하고 중요하지만 수동으로 추가할 때마다 새 페이지불편한. 따라서 지식 덕분에 XML 작업, 나는 이 사업을 쉽게 자동화했다. 그래서 XML은 유용한 언어입니다, 모든 프로그래머가 최소한 일반적인 용어로 알고 있어야 합니다.

기본적으로 표준화를 통해 손전등과 배터리, Macromedia Flash와 멀티플레이어 게임 서버 등 이기종 항목이 서로 상호 작용할 수 있습니다. 또한 초당 엄청난 양의 데이터가 이동하는 World Wide Web에서는 시스템 간에 데이터가 교환되는 방식을 표준화하는 것이 매우 중요합니다. 강력하고 사용하기 쉬운 XML은 빠르게 인정되는 표준이 되고 있습니다.

이 단원에서는 XML 형식의 기본 사항을 안내하고 Flash에서 XML 및 XMLSocket 객체를 사용하는 방법을 보여줍니다. 수업이 끝나면 Flash와 ASP 페이지를 "대화"하여 사용자 로그인을 기록할 수 있습니다. 또한 소켓 서버를 사용하여 간단한 실시간 채팅을 만들 것입니다.

무엇을 공부할 것인가

이 수업에서:

  • XML 형식
  • XML 데이터를 서버로 보내고 서버에서 로드
  • 새 XML 개체 만들기
  • XML 개체 메서드, 속성 및 이벤트 적용
  • Flash를 사용하여 소켓 서버에 연결 설정

이 튜토리얼에서 코딩할 간단한 채팅 애플리케이션은 XML 소켓 연결을 사용합니다.

리드 타임

이 수업을 완료하는 데 약 1시간 30분이 걸립니다.

수업 파일

미디어 파일:

스타터 파일:

Lesson12/Assets/LoginRegister1.fla Lesson12/Assets/Chat1.fla

완료된 프로젝트:

로그인Register2.fla Chat2.fla

XML 기초

XML 또는 eXtensible Markup Language라는 이름이 다소 생소하게 들리지만 이 언어를 이해하고 숙달하는 것은 전혀 어렵지 않습니다. 기본적으로 XML은 수신 응용 프로그램이 해석하고 사용할 수 있는 정보를 형식화하고 구조화하는 방법입니다. 사실, 우리 모두는 아마도 스스로 알지 못하지만 정보를 구조화하고 조직화하는 데 광범위한 경험을 가지고 있습니다. 이 예를 들어보겠습니다.

친구에게 편지를 쓰고 싶을 때는 친구가 알아볼 수 있는 형식으로 생각(정보)을 구성해야 합니다. 따라서 왼쪽 상단 모서리부터 시작하여 생각을 단락, 문장 및 단어로 나누어 종이에 단어를 쓰기 시작합니다. 물론 왼쪽에서 오른쪽으로가 아니라 어떻게 든 원을 그리거나 그림으로 생각을 전달하려고 할 수도 있지만이 방법은 친구를 당황하게 할 가능성이 큽니다. 그리고 친구가 익숙한 형식으로 편지를 쓰면 메시지가 이해될 것이라고 확신할 수 있습니다. 즉, 생각(데이터, 정보)이 편지를 받는 사람에게 성공적으로 전달될 것입니다.


XML도 같은 용도로 사용됩니다. 정보를 전송하기 위한 형식입니다. 예를 들어 처리를 위해 Flash에서 웹 서버로 데이터를 보내려면 먼저 데이터를 XML 형식으로 표시해야 합니다. 그러면 서버가 이 데이터를 적절하게 해석하고 사용할 수 있습니다. 이것이 없으면 데이터의 여러 부분을 수신한 서버는 첫 번째 부분으로 무엇을 해야 하는지, 두 번째 부분으로 무엇을 해야 하는지, 첫 번째 부분이 두 번째 부분으로 무엇을 해야 하는지 알지 못할 것입니다. XML 덕분에 이러한 이질적인 데이터 조각은 의미로 가득 차 있고 서버는 이러한 데이터로 작업하는 방법을 파악할 수 있습니다.

HTML과 같은 XML 구문은 태그, 속성 및 값을 사용하지만 여기서 유사점은 끝입니다. HTML은 미리 정의된 태그(예: body, head 또는 html)를 사용하는 반면 XML에서는 사용자가 라이브러리에서 미리 정의된 이름을 선택하는 대신 자신의 태그를 만듭니다. 이 간단한 XML 문서부터 시작하겠습니다.

켈리 마카르 마이크 그런드빅 무료 마카르

각 XML 태그를 노드( 마디), XML 형식의 데이터 집합을 XML 문서라고 합니다. 예제 문서에는 루트 노드인 MyFriends와 세 개의 하위 노드가 있습니다. 각 XML 문서에는 루트 노드가 하나만 포함될 수 있습니다. 첫 번째 자식 노드에는 노드 이름이 Name 이고 노드 값이 Kelly Makar 입니다. 각 자식 노드의 Gender라는 단어는 속성입니다. 속성은 선택 사항입니다. 각 노드는 무제한의 속성을 가질 수 있습니다. 일반적으로 속성은 화면에 표시할 필요가 없는 작은 정보(예: 사용자 ID)를 포함하는 데 사용됩니다.


이 예에서 볼 수 있듯이 태그(우리가 직접 만들고 설명)는 정보 조각(Kelly Makar, Mike Grundvig 및 Free Makar)에 의미를 부여합니다.

다음 XML 문서는 보다 복잡한 구조화 예입니다.

켈리 마카르 121 베이커 스트리트 어떤 도시 노스 캐롤라이나 트립 카터 777 어나더 스트리트 엘리자베스 시티 노스 캐롤라이나

이 예는 XML 형식의 주소록 데이터가 어떻게 생겼는지 보여줍니다. 주소록에 600명이 있다면 Person 노드는 동일한 구조로 600번 반복됩니다.

노드, 구조를 어떻게 생성해야 합니까? 수신자 개체(ASP 페이지, 소켓 등)는 문서 서식을 어떻게 인식합니까? 대답은 간단합니다. 이를 수행하는 수단은 수신자 개체에 내장되어야 합니다. 예를 들어, Flash에서 주소록을 생성하고 주소록에 포함된 정보를 데이터베이스에 저장하려면 해당 주소록의 XML 버전을 해당 정보를 구문 분석할 수 있는 ASP 페이지(또는 다른 스크립트 페이지)로 보내야 합니다. 적절한 필드에 데이터를 배치합니다. 이 ASP 페이지 스크립트는 데이터를 제대로 처리하기 위해 미리 설계되어야 함을 이해해야 합니다. XML은 저장보다 정보 전달에 더 적합합니다. 따라서 주소록 데이터를 XML 문서 형식보다 데이터베이스 레코드에 저장하는 것이 더 편리합니다. 필요한 경우 특수 스크립트를 사용하여 데이터베이스에서 정보를 추출하여 형식으로 변환할 수 있습니다.

관련 출판물