XHTML은 세대와 DOM을 통합전통적인 웹 애플 리케이션에 적용될 수는 XSLT의 XML 소스 문서에 대한 수요가 제한됩니다. 만약 귀사가 이미 XML을 배치하지 않은이 제한된 용도로까지 될 수도있습니다 XHTML을 생산 걱정입니다. 그런 한계에도 불구하고, 그러나, 당신는 XSLT 관리 및 XHTML의 내용을 수정하기위한 유용하게 찾을 수있습니다. 만약 당신이 그것을 적절한 찾을 XHTML은 이후 XML 및 따라서는 XSLT 처리와 함께 잘 익은입니다. 어쩌면 아이 러니컬하게도, 문서를 어떤 클래스의 속성을 잘 이용하는 마음에서 CSS 스타일 시트와 함께 만든 거의 쉽게하는 의미 론적 요소는 XSLT의 이름을 XML 문서를 함께 일할뿐입니다. 는 XSLT 왜냐하면 당신은 그 속성 값 및 이름에 대한 요소뿐만 아니라, 당신이 수있는 "수확"의미 론적 내용을 의존하는 규칙을 지정할 수있습니다 (있는 경우) 기존의 XHTML을 문서. 동시에, 당신이 그들을 변환할 수있습니다 다른 XML 형식 - 고객님의 어휘에서되는 XSL 서식 개체, 확장 가능한 벡터 그래픽 (SVG), 또는 그러한보다 일반적인 어휘로 멀티미디어 통합 언어 (SMIL) 동기화. 귀하의 문서를 포함하는 마크업 더 많은 정보와 더 많은 정기적으로 적용되고, 이러한 작업는 XSLT 적용의 기회를 더. 않더라도 계획을 이렇게 할 필요가 있지 않다면, 당신은 데이터베이스에서 귀하의 모든 웹 문서를 생성, 당신은 최종 문서 및 데이터 소스 간의 추상화 계층들을 채울로 일하고는 XSLT 묻어둘 수있습니다. 만약 당신이 여러 개의 데이터베이스와 함께 작업하는 경우, 특히 그들이 광범위하게 분산되어, 당신은 그것을 유용한 XML 문서의 집합으로서 자신의 정보를 보내려면 데이터베이스 또는 미들웨어의 일종을 찾을 수있습니다. 그들은이 중 회신하여 쿼리를 사전에, 혹은 둘 다 일종의 캐싱에 접근을 수행할 수있습니다. 그럼는 XSLT 함께 사용할 수있는 형식으로 최종 결과를 짜다합니다. 하지만 HTML을 개발자 클라이언트에 어떤 형태에 대한 1997 때 초기 동적 HTML 구현이 나타난 후 문서 객체 모델 (DOM) 사용, 서버 사용을 최대 문서 생성의 새로운 지평을 엽니다. 동시에, DOM을 준수 매우 쉽게 XHTML을 만들 수있습니다. DOM을 사용하여 모든 상황에 적절하지 않을 수 문서를 생성합니다 : 그것은 텍스트 세대보다 매우 다른 접근 방식 또는 템플릿 소요되며,뿐만 아니라 프로그래밍 모델을 재검토로 retooling 필요할 수있습니다. 동시에 프로그램 구조를 공식적으로 설계를 쉽게 들어 어떤 경우에, 그러나 맞지 않으면, DOM을 XHTML과 적합성을 훨씬 쉽게 만들 것을 약속드립니다. 빌딩 나무, 아니 스트림텍스트 스트림을 몇 가지 리소스를 필요로하며, 비교적 효율적으로 생성할 수있습니다. 반대로, 나무가 더 많은 자원을 필요로하고 그들이 때로는 더 많은 프로세싱 파워를 비용. 그러나, 그들은 누구 봉투를 밀어 넣어야 개발자를위한 새로운 가능성을 여십시오. 트리 모델은 개발자들이 XHTML과 애플 리케이션을 구축하는 두 가지 주요 이점을 제공합니다. 첫째, 그들은 실수를 텍스트 출력 버그에 의한 보온의 개발자들이 모듈화의 대형 학위를 제공하고있습니다. 둘째, 그들은 개발자들이 초기 트리를 만들고 다음 필요한 경우 수정 - 심지어 그것을 변형 수 있도록 유연성을 훨씬 더 학위를 제공합니다 다른 구조를 한꺼번에 들어가거나 작은 조각으로 그것을 줄일 수있다. 만약 당신이, 그리고 안정성과 유연성이 필요 이런 종류의 더 큰 메모리와 프로세싱 요구 사항이 트리 구조를 필요로 받아들일 수있다면 당신은 그것을 유용하게 DOM을 통해 문서를 생성할 수도있습니다.
참고당신이이 문서에서 사용하는 모든 기능을 포함하고는 DOM 수준 1 규격, http://www.w3.org/TR/REC-DOM-Level-1에서 사용할 수있습니다. 만약 당신이 궁금해 http://www.w3.org/TR/DOM-Level-2에서 사용할 수는 DOM 레벨 2 기분이야. 정보 추가 DOM을 개발에 사용할 수있습니다 http://www.w3.org/DOM/. DOM을 구현문서 객체 모델로서 W3C에서 지정한에서 오는 여러 가지 레벨모든이의 API를 통해 스크립트와 문서의 정보 설정 프로그램을 제공합니다. 는 DOM API를 공식적으로 중인데, CORBA의 IDL 파일을 통해 지정됩니다 (뭐 그런 DOM을 사용하는)에 대해,하지만 더 일반적으로 자사의 Java 및 JavaScript를 번역하는 데 사용됩니다 알 필요가없습니다. DOM 문서 처리 및 취급에 관한 모든것을 지정하지 않습니다 - 예를 들어, W3C는 단지 새 문서 만들기, 문서의 로딩 주소와 레벨 3 일을에서 문서를 막 시작 절약한다.이 방법의 결과로서, 세계의 DOM을 구현 다소 조각입니다. 자바, 자바 스크립트 간의 차이, 그리고 DOM의로 CORBA 버전 게다가, 그것을 극단적으로 여러 환경에 대한 완벽한는 DOM 코드를 쓰기 어렵습니다. 당신이 환경에서 서버 환경에서도 브라우저를하고 다시는 DOM 코드를 이동하는 동안 핵심 문서 생성, 같은 시작과 끝 프로세스를 실질적으로 다를 수있습니다 남아있을 수있습니다. 다행히도, 기본적인 원칙은 매우 안전합니다. 만약 당신이 Active Server Pages 이내에 그 지식의 썬, IBM, 아파치, 그리고 다른 사람, 또는 자바 스크립트 처리에 내장된 자바 XML 파서를 사용하여 작업을 위해 상당한 금액을 전송할 수있습니다 (ASP)의 환경에서 DOM을 조작의 기초를 배울 수 모질라 / 넷스케이프 네비게이터 6. 기본적인 개념이 모든 시스템에 동일하게, 그리고 구현해야한다 (희망)을 추적으로 W3C의 더 완전한 표준 및 개발자들이 출시되어있는 표준을 빌드합니다. 반면 스크립트는 어떻게 다른 주변 환경에 따라 다를 수도있습니다 지적 다음 섹션에서는, 하나의 환경에서, ASP의 기본 원칙을 좀 걸립니다. 참고DOM을 다양한 풍미뿐만 아니라 레벨 온다. 이 문서에서는, 당신은 코어는 DOM 레벨 1의 코드를 생성하는 작업. 더많은 HTML 형식의 특정 기능은 DOM 레벨 1의 HTML 부분에 사용할 수있습니다. 그러나, 그런 경향이 더 많은 기능을 클라이언트에 적절한 수 사이드 동적 HTML 응용 프로그램 및 도구 일반적으로 XML을 생성하는 데 사용에서 지원되지 않습니다 - HTML을 어휘도했다. 는 DOM 예제그러나 다음 예제는 Active Server Pages를 자신의 개발 환경으로 사용하여, 그들은 대부분의 프로그래밍 환경으로 ASP를 사용하여 자사의 능력을 무시하는 템플릿을 만들. 동안 혼합 수는 DOM 접근 방법과 일치하는 템플릿 마크업 코드를 만들어 안정성을 망칠 수도있다는 템플릿에서 주변의 소재. 이것은 특히 만약 다른 템플릿으로 생성된 콘텐츠를 포함 사실이다. (XHTML 1.0과 적합성에 대한)가 필요하기 때문에 DOM을 레벨 1 "편집 DocumentType"노드를 지원하지 않습니다, 당신은 여전히 XML 선언에 대한 (있을 경우) 및 DOCTYPE 선언 부분에 적절한 템플릿을 사용해야합니다. 참고경우에도 ASP를 사용하지 않는 또는 ASP 좋아하지 않아, 다음 예제는 DOM의 기본 어휘와 개발에 다른 환경에서 적용됩니다 사용량 많이 포함되어있습니다. 당신은 귀하의 첫 번째 DOM을 만들만큼 XHTML은 문서의 고전 "안녕을 기반으로 세계. " 당신이 만드는 코드는 XHTML의 문서를 빌드는 다음과 같이 보입니다 :
는 DOM의 한계 때문에, 당신은 XML 선언과 DOCTYPE이처럼 보이는위한 쉘을 만들어야합니다 : 국어 @ "% = 자바 스크립트 %" 왜냐하면 대부분의 ASP에서 VBScript를 구현을 기본적으로, 당신은 규격에서 자바 스크립트 DOM의 바인딩을 사용하는거야, 당신은 JavaScript를 사용하는 ASP를 얘기해야합니다. XML 선언을하기 때문에 프로세싱 인스트럭션으로 취급 즉시 따르도록하고있다 (그리고 가능성이 무시) 경우에는 공백이 포함되어있습니다. 코드의 다음 부분에 문서를 생성하면 Microsoft의 구문을 사용하여 개체를 조작할 수있습니다. (DOM을 레벨 1이 프로세스에 대한 표준 메커니즘을 제공하지 않습니다.) "% var myDoc = Server.CreateObject를 ("Microsoft.XMLDOM "); 일단 문서가 있으면 (이 경우 루트 요소를 만들어야합니다 , html)을 선택. createElement () 메서드의 인자에 대한 요소 이름이 소요 요소를 반환합니다 그런 다음 개체를 조작할 수있습니다. var htmlNode = myDoc.createElement ( "html로"); HTML 요소 및 여기에 사용하는 언어 네임 스페이스를 선언하는 몇 가지 특성이 필요합니다. 일단 당신이 HTML 요소가 있으면, xmlns, xml 형식 : lang을 만들고 lang 속성을 setAttribute 메서드를 사용하여 그들의 값을 설정합니다. htmlNode.setAttribute ( "xmlns", "http://www.w3.org/1999/xhtml"); ( "xml 형식 :"htmlNode.setAttribute lang, "ko - 사이트"); ( ""랭, htmlNode.setAttribute "ko - 사이트"); HTML 요소를 현재 존재하는, 그리고 특성의 완전한 보완하고있다,하지만 당신은 아마 문서의 루트 요소로 설정해야합니다. myDoc.documentElement = htmlNode; 이제 당신이 HTML 요소가 없다면, 시간이 문서 콘텐츠의 나머지 부분을 만듭니다. 즉, 다음 요소 및 텍스트 노드를 만들고 자신의 부모 노드와 텍스트 노드를 요소에 부착하십시오. 그러나 그것은 매우 중요하지 않다 당신이 노드를 생성 순서, 그 코드의 순서는 일반적으로 문서의 순서를 반영 나도 점점 이상해지에서 디버깅을 계속합니다. 머리와 제목 요소부터 시작하자 : var headNode = myDoc.createElement ( "머리"); var titleNode = myDoc.createElement ( "제목"); var titleText = myDoc.createTextNode (에 "Hello World!"); titleNode.appendChild (titleText); headNode.appendChild (titleNode ); htmlNode.appendChild (headNode); 별도로 모든 노드를 작성하여 다음 적절한 컨테이너에 요소를 추가 머리 요소를 빌드합니다. 반면 appendChild 메서드를 다음 노드 간의 연결을 설정 createElement와 createTextNode 방법은 각각, 요소 및 텍스트를 만듭니다. var bodyNode = myDoc.createElement ( "몸"); var h1Node = myDoc.createElement ( "H1의 단종"); var h1Text = myDoc.createTextNode (에 "Hello World!"); var paraNode = myDoc.createElement ( "p"가); var paraText = myDoc.createTextNode (에 "Hello World!"); h1Node.appendChild (h1Text); paraNode.appendChild (paraText); bodyNode.appendChild (h1Node); bodyNode.appendChild (paraNode); htmlNode.appendChild (bodyNode); 마지막으로, 당신은 myDoc 개체의 메서드를 사용하여 XML을 모델로했습니다 XML 문서를 작성합니다. xml 형식 메서드를 추가 공백이있는 XML 콘텐츠를 생산하고있습니다. 공백이 필요하면, 당신은 그것을 포함하는 텍스트 노드를 만들 수있습니다. 이러한 접근 방식은 거의 XHTML을 가진 콘텐츠를 사전에 알려져있다 창출로 제한됩니다. 또한 쉽게 자료를 데이터베이스, 양식, 또는 다른 가능성에서 오는 함께 작동합니다. 다음 예에서는 정보를 수집하는 정적 XHTML의 양식을 사용하여 XHTML과 - 생성 스크립트에 전달합니다. 이 양식의 정보를받는 사람 XHTML은 문서에 자료를 삽입하는 DOM을 사용합니다. 기법을 그 이전의 예제에서처럼 사용의 대부분은,하지만 몇 가지 차이점을 설명 코드를 따르십시오 :문서 제목 만들기, 당신은 양식에서 텍스트의 단일 텍스트 노드가되면 하나의 문자열로 결합하여 여러 분야 : var titleText = myDoc.createTextNode ( "주소"+ Request.Form.item ( "FirstName") + ""+ Request.Form.item ( "성"));왜냐하면 제목 요소에 텍스트만 포함이 잘 작동한다. 만약 그것을 혼합했다 텍스트와 요소, 그것을 더 복잡하게 접근 방식을 필요로 (이는 i) 귀하의 이름 정보를 사용하여 다음 번에 설명 : var nameNode = myDoc.createElement ( "p"가); nameNode.setAttribute ( "클래스", "이름"); = myDoc.createElement ( "스팬"); ( "클래스", "이름"); firstNameNode.setAttribute var firstNameNode var firstNameText = myDoc.createTextNode (( "FirstName")) Request.Form.item; (firstNameText); = myDoc.createElement ( "스팬"); ( "클래스", "LastName"은) lastNameNode.setAttribute var lastNameNode firstNameNode.appendChild ; var lastNameText = myDoc.createTextNode (Request.Form.item ( "성")); lastNameNode.appendChild (lastNameText); nameNode.appendChild (firstNameNode); nameNode.appendChild (nameSeparatorNode); (lastNameNode) nameNode.appendChild; bodyNode. appendChild (nameNode);이 코드 청크를 이유로 번호를 주목할입니다. 첫째, 이름이 있기 때문에 하나의 라인에 전체 이름을 하나의 P는 요소에 포함되어있는가 나타납니다. 한편, 첫 번째 이름과 이름 스팬 요소에 포함되어있습니다. 이름처럼 건설 수있습니다 제목 - 그냥 텍스트 -하지만 스팬의 요소와 클래스 속성을 사용하여 콘텐츠에 대한 자세한 내용은 보존의 이름이 가능한 스타일의 부분을 다르게 만들거나 클라이언트를 통해 그룹 사이드 동적으로 주소를 HTML을. 또한 유의할 이름을 구분 노드의 생성이다 - 비록 그것을 단지 공간, 그것을 만들 수를 명시적으로 추가하고있다. 코드를 다른 구분 기호를 나중에 나타납니다 : citySeparatorNode = myDoc.createTextNode ( ","); addressNode.appendChild (citySeparatorNode);그 우체국 기쁘게 해주고 싶어요 기업보다는 인기있는 양식을 사용하여, 그냥 공간 commaspace 변경할 수있습니다. 주 및 우편 번호,하지만 사이에, 당신은 뭔가 다른 것을 할 수있습니다 : postalSpaceNode = nameSpaceNode.cloneNode (거짓); (postalSpaceNode) addressNode.appendChild;당신은 처음이자 마지막 이름 사이에 공간이 동일하게 코드를 주 및 우편 번호 사이에 공간을 원하지만, 가정과 같은 노드가 여러 부모를 가질 수없습니다. , cloneNode ()를 사용하는 방법,이 방법은 노드의 내용을 새 복사본을 반환한다이 합병증을 피하려면. 그것을 전달하여 인수를 false로, 요소 콘텐츠에서만 가능한 레이어를 통해 꺼내없이 노드의 단순 복사본을 반환합니다. 당신은별로 문제가되지 않는 공간 - 이것은 매우 간단한 노드입니다 - 그래서 인자 싶어요. 예,이 지나치게 복잡해 보일지도있습니다. 다른 한편으로는, 그것은 또한 당신의 문서를 정하게 될 것이다 XML을 공백. XHTML은 발전기에 의해 매일 매일 시간을 다시 한 번없이 대부분의 부분에 대한, 비록 공백을 어디에 명시적으로 추가할 수 있도록하는 데 도움이 나타나지 않습니다 : 지금까지,이 작품의 비교적 작은 결과를 생산하는 엄청난 것 같아. 혜택을하면 같은 문서 전체 섹션을 추가하거나 문서를 다른 한 종류의 변환으로 문서 구조를 더 정교한 것들을 할 필요가 나타나기 시작합니다. 다음 예제에서는, 당신은 기존의 XHTML은 문서의 DOM을 내에서 쉽게 수정할 문서 서식 파일의 새로운 종류로 XHTML은 문서를 사용하여 주소 정보를 추가할 수있습니다. 당신이 사용하는 템플릿은 다음과 같습니다 : 동안 또는 다른 사람을 보내 법적 편지되지 않을 수도있습니다 (비록 뻔한 패러디), 거의 준수합니다 XHTML을거야. 다음으로, 당신은이 문서를로드하는 데 사용하고 있었는 DOM 코드를 빈 DIV 요소에 주소 정보를 추가, 수정 및 문자로 내보내. 주의그러나 그것이 바람직합니다, ASP에서 엔진 및 XML 파서는 DOCTYPE 선언을 XML로로드 XHTML을 포함하는 문서를 질식시킬 것 템플릿 DOCTYPE 선언을 포함합니다. 우리는 스크립트에 다시 한 번 정보를 넣어야 할 겁니다. 코드의 대부분 DOM을 코드에 위의 주소를 생성하는 데 사용하는 것과 같습니다. 가장 큰 차이점은 코드의 시작 부분에서 어디에 문서 템플릿을 기반으로 그것을 사용하여로드 거짓말. 그 이전의 예제에서 차이가이 스크립트를 주요 활동 코드 템플릿로드 시작이다 : sourcefile = Server.MapPath를 ( "prizexhtm2.xml"); var myDoc = Server.CreateObject를 ( "Microsoft.XMLDOM"); myDoc.async = 거짓; myDoc.load (sourcefile); var changeNode = myDoc.getElementsByTagName ( "div" ). 항목 (0); 파일을로드하기위한 기술은 마이크로 소프트의 확장, 다시 한번 불특정는 W3C DOM을 사양입니다. 기본적으로이 코드는 템플릿으로 사용되는 스크립트와 동일한 폴더에 파일의 전체 경로를 만듭니다. XML 파서를 누른 다음 - 거짓은 전체 문서를 처리하기 전에로드를 보장하는 myDoc.async 설정 파일을 구문 분석하는 계속됩니다. 그렇다면 그렇게 당신 요소로 양식에서 발생하는 정보를 넣을 수 비어있는 DIV 요소를 잡아 야지. 소스 코드를 배후 세대도 흥미롭습니다. 어떻게 Microsoft XML 파서 문서에서 부하로 만들어진 코드를 통해 문서에서 공백에 반대하는 공백을 처리하는 몇 가지 불일치를 보여줍니다.
이러한 예제는 매우 간단합니다, 당신은 작업과 같은 데이터베이스 또는 XML 문서의 구조 정보를 주변에 테이블을 건물로, 문서에서 문서 내용, 또는 삭제 조각을 재배열과 같은 메커니즘을 적용할 수있습니다. 모바일 논리와 구조 만들기문서 객체 모델과 그것을 생산하는 경향이 코드는 둘 다 약간 무거워 있지만, 결과는 아래로 크기 다루기 프로젝트를 잘라 수있습니다. HTML과 XML 간의 경계를 향해 눈을 가진 개발에서 문서 객체 모델 숨어 있지만 아직 작업이 후자의 사건에 대한 유용한 전. 브라우저에서, 당신이 그 기능의 HTML 어휘와 다양한 이해는 어휘를 중심으로 구축의 해결을 위해 활용하고자 할 수있습니다. 서버에서, 당신은 XML을 관점에서 문서를 작성하는 데 사용할 수있습니다. XHTML은, 그래서 DOM을 자연 맞는 두 가지 관점의 이해가 필요합니다. 아마도 가장 중요한 건에 대해서는 DOM 그것이 당신 그러나 적절한 찾아 다른 시스템간에 응용 프로그램 파티션에있게됩니다. , 더욱 강력하고 이런 측면에서 훨씬 확장 변환 스타일 시트는 XSLT (같은)에 마지막으로 문서에 설명되어있습니다 -하지만 어느 정도합니다. 때문에 트리 구조는 DOM manipulatable 유지에 의해 만들어진 문서를 파싱 및 변환 단순히 출력하는 DOM을 그렇게 간단한 문서를 생성 단지 (비록 잘 브라우저를 통해 구현되지 않은 그림 잘 넘어 유연성을 제공합니다 아직은). 넌 (있을 경우) 서류 작성 및 다음 브라우저에서 동일한 코드를 실행하고 동일한 문서를 생성하는 클라이언트 브라우저, 문서 결합에 대한 적절한 스크립트를 움직일 수있습니다. MS가 특정 기능을 생성하고 출력 문서를 사용하는 업데이 트가 필요 (로 인터넷 익스플로러에도이)지만, 코어 로직을 쉽게 전송됩니다. (다행히, DOM을 레벨 3이 사진을 완료 개발을위한 약간 다른 문법을 사용하여 논리가 완벽하게 양도합니다. 몇 가지가있습니다 알듯이 약속은, XHTML과 DOM을 마지막으로 동적 HTML 유력한의 옛 약속을 만들 것입니다 기능이 조합을 의미합니다. 내부의 (과) 브라우저에서 외부 데이터를 웹을 통해보다 정교한 팝업 물건 최대 전송을 사용하여 응용 프로그램을 실행 건물 개요 및 드래그 앤 드롭으로 게임을 더 쉽게, 여러 브라우저에 대한 지원이 필요한 경우도있을 것입니다 환경. 문서 알버트 Lichtblau에 의해 제출된 면책 조항 :우리의 웹사이트는이 문서의 콘텐츠에 대한 책임을지지 않습니다. Webarticles 무료로 정보 자원입니다. 중요 : 이 문서는 ""XHTML은 세대와 DOM을 통합 자동으로 소프트웨어에 의해 번역되었다. 우리는 유감이 발생했을 수있는 모든 맞춤법 오류에 대한 느낌. 양해해 주셔서 감사합니다.
|
|||||
| Online: 135 users browsing the articles directory |
|
|