SGML, XML, HTML 및 XHTML의 관계 및 차이점


16
  1. Wikipedia 에서 "프로파일"의 의미가 궁금합니다 .

    XML은 ISO 표준 SGML의 프로필이며 대부분의 XML은 변경되지 않은 SGML에서 제공됩니다.

  2. http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html 에 따르면 :

    HTML은 SGML의 하위 집합입니다.

    XML은 SGML의 기능적 하위 집합입니다.

    XHTML은 HTML을 확장하고 서브셋합니다.

    "하나는 다른 것의 부분 집합이다"는 것이 첫 번째의 코드가 구문 적으로 정확하고 두 번째의 의미 적으로 동일하다는 것을 의미합니까?

    초등 이론의 의미에서와 같이

    • HTML, XML 및 XHTML은 모두 SGML의 다른 하위 집합입니까?
    • XML과 HTML이 서로 거의 교차하지 않습니까?
    • XHTML은 XML과 HTML의 상위 집합입니까?
  3. 위의 링크보다 네 가지 목적 및 / 또는 사용시기의 차이점에 대한 간결하고 명확한 요약을 기대할 수 있습니까? 나는 그들의 의도 된 목적 사이의 명확한 경계에 대해 정말로 혼란 스럽습니다.
  4. http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html 에 따르면 :

    XML은 단일 마크 업 언어가 아닙니다. 사용자가 자신의 마크 업 언어를 디자인 할 수있게 해주는 금속 언어입니다.

    XML과 HTML을 모두 이해하는 방법이 궁금합니다. HTML은 마크 업 언어이지만 XML은 마크 업 언어가 아니라 마크 업 언어를 디자인하기위한 금속 언어입니까?

    SGML과 XHTML도 마크 업 언어를 설계하기위한 금속 언어입니까?

  5. 두 링크에서와 같이 HTML은 SGML의 응용 프로그램 일뿐 아니라 SGML의 응용 프로그램이며 XHTML은 XML의 응용 프로그램입니다. 한 언어가 다른 언어의 응용 프로그램이라고 말하고 한 언어가 다른 언어의 하위 집합이라고 말하는 것의 차이점은 무엇입니까?

답변:


8

HTML과 XML은 모두 마크 업 언어이므로 * ML입니다. XML은 임의의 데이터를 나타내는 데 적합한 일반 마크 업 언어 인 반면 HTML은 웹 페이지를 나타내는 데만 적합한 특정 마크 업 언어입니다.

HTML과 XHTML은 모두 SGML의 하위 집합입니다. 단, XHTML에는 추가 사양이있어 XML로도 유효하다는 점이 다릅니다. XML을 XHTML의 영향력있는 대부라고 생각하십시오.

이 세 가지 언어에서 SGML과의 관계로 인해 많은 유사점이 있지만 모두 다른 언어로 간주됩니다. 그러나 이러한 언어를 정의하는 것은 SGML에 대한 제한 사항입니다.

  • HTML은 사용할 수있는 태그 목록을 정의하여 SGML을 제한합니다.
  • XML은 닫히지 않거나 비어있는 시작 및 끝 태그를 허용하지 않고 SGML을 제한하고 속성을 명시 적으로 지정합니다. 또한 XML에는 SGML에는없는 많은 추가 제한 사항이 있습니다.
  • XHTML은 SGML을 HTML의 태그 (frameset 등의 일부 제외)와 XML의 태그 및 엔티티 제한으로 제한합니다.

기술 용어는 이해하기 어려울 수 있지만이 문서가 도움이 될 수 있습니다. http://www.w3.org/TR/NOTE-sgml-xml-971215

XML은 마크 업 언어를 정의하기위한 금속 언어가 아닙니다. 실제로 그것은 단지 SGML입니다. XML은 단순히 데이터 형식 마크 업 언어입니다. 인용 한 출처가 기술 용어를 부정확하게 사용하고 있기 때문에 혼동되는 것입니다.

목적

XML은 자신의 데이터 형식을 정의하기위한 것입니다. 두 시스템간에 데이터를 전달하려면 XML을 사용하는 것이 좋습니다.

예를 들어, 판매 주문을 웹 사이트에서 청구 시스템으로 전달해야하는 경우 다음 XML 페이로드를 작성할 수 있습니다.

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

그런 다음 웹 사이트에서 해당 XML을 청구 시스템으로 전송하면 해당 XML의 데이터를 구문 분석 할 수 있습니다.

XHTML과 HTML은 분명히 웹 페이지를위한 것입니다. XHTML의 주요 목적은 지난 몇 십년 동안 웹 개발에 있었던 많은 모호성을 제거하는 것입니다. 내가 시작했을 때 90 년대 후반에, 우리는 심각하게 조잡한 코드를 허용하는 HTML 3.2를 사용하고있었습니다. HTML 4+ 및 XHTML은 명시적인 닫는 태그, 명시 적 속성 및 허용되지 않는 태그를 강력하게 제안하거나 적용하여 브라우저와 사람 모두에게 더 쉬워지고 브라우저 간 동작의 예기치 않은 차이를 피합니다.


감사! (1) XHTML의 HTML 및 XML 하위 집합이 있습니까? (2) HTML이 XML의 하위 집합이 아니며 XML도 HTML의 하위 집합이 아닌 것이 맞습니까? HTML과 XML이 비어 있지 않은 교차점이 있거나 완전히 분리되어 있습니까?
모든 StackExchange for

(3) 한 언어가 다른 언어의 적용이고 한 언어가 다른 언어의 일부라고 말하는 것의 차이점은 무엇입니까?
모든 StackExchange for

XML과 HTML을 모두 준수하는 문서가 있습니다. HTML이 아닌 XML을 따르는 문서가 있으며 XML이 아닌 HTML을 따르는 문서가 있습니다. 따라서 어느 쪽도 다른 쪽의 부분 집합은 아니지만 비어 있지 않은 교차점이 있습니다.
Michael Kay

@Tim : (1) HTML, XML 및 XHTML은 SGML 이외의 하위 집합이 아닙니다. 그들은 모두 다릅니다. XML은 실제로 HTML이나 XHTML과 아무 관련이 없습니다. 다른 목적을 수행합니다. XHTML은 HTML과 XML로 구문 분석 할 수 있지만 브라우저에서는 HTML 마크 업으로 만 사용합니다. HTML과 XML은 모두 SGML의 공통 조상을 갖지만 관련이 없습니다. SGML은 매우 일반적이기 때문에 모든 의도에 대해 별개입니다.
Jordan

솔직히 나는 당신이 응용 프로그램과 하위 집합으로 용어에 너무 깊이 빠져 있다고 생각합니다. 나는 그 용어들 사이에 차이가 있다고 생각하지 않거나, 있다면, 그 용어가 널리 합의되었다고 의심합니다. XHTML이 XML에서 개념을 빌려 HTML의 엄격한 하위 집합으로 사용한다고 말하면 충분합니다. HTML이 먼저 나왔습니다. XHTML은 이후에 나왔습니다.
Jordan

6

XML은 SGML의 하위 집합이고 XHTML은 XML의 하위 집합이라고 말하면서 시작하겠습니다.

HTML은 SGML을 기반으로하지만 다른 규칙이 있습니다. XHTML은 기본적으로 업데이트 된 버전 HTML이지만 일부 규칙을 적용하면 올바른 XML이기도합니다.

HTML 5 표준이 다른 사양과 어떻게 작동하는지에 대한 참고 사항. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

SGML과 XML의 차이점 또는 다른 것을 사용할 때 확실하지 않습니다. XML이 일반적으로 사용되는 것으로 보이지만.

XHTML과 HTML의 경우 항상 XHTML을 사용하는 것이 좋습니다. 오류를 쉽게 찾을 수 있으며 보너스로도 유효한 XML이됩니다.


감사! (1) 두 가지 상충되는 사실을 이해하는 방법이 궁금합니다. XML과 HTML은 모두 SGML의 하위 집합이며 HTML은 마크 업 언어 인 반면 XML은 마크 업 언어가 아니라 마크 업 언어를 디자인하기위한 금속 언어입니까? (2) 귀하의 회신에 따르면 XHTML은 XML의 하위 집합입니다. XHTML은 내 게시물의 한 링크에서 인용 된 "XHTML 하위 세트 HTML"과 같은 HTML의 상위 집합입니다. HTML은 XML의 하위 집합입니까? 나는 그것이 확실하지 않다.
모든 StackExchange for

HTML이 너무 많은 규칙을 위반하여 XML이 아닙니다. HTML은 내가 믿는 SGML에 더 가깝습니다. 태그가 포함 된 HTML이 느슨하고 다양한 수의 태그 유형이 있습니다. XHTML은 HTML의 XML 버전입니다.
WalterJ89

감사! 두 링크에서와 같이 HTML은 SGML의 응용 프로그램 일뿐 아니라 SGML의 응용 프로그램이며 XHTML은 XML의 응용 프로그램입니다. 한 언어가 다른 언어의 응용 프로그램이라고 말하고 한 언어가 다른 언어의 일부라고 말하는 것의 차이점은 무엇입니까?
모든 StackExchange for

2

이것들의 역사는 당신을 여기에 비추 게 할 것입니다. 메타 언어, 프로파일, 서브셋 및 인스턴스에 대해 간단히 이야기하는 것은 약간 건조합니다! 짧고 간단하게 유지하도록 노력하겠습니다.

SGML은 정교한 법률, 정부, 산업 및 군사 문서를 저장하는 수단으로 1960 년대 IBM 엔지니어 3 명이 고안 한 GML (Generalized Markup Language)에서 발전했습니다. GML은 1986 년 SGML로 표준화 될 때까지 점차 개선되었습니다.

GML / SGML은 언어 자체 가 아닙니다 . 오히려 메타 언어입니다 . 즉, 정교한 언어를 정의하는 언어 또는 다양한 정교한 문서의 형식을 일반적으로 일관된 방식으로 디자인 할 수있는 "규칙"입니다. 따라서 각기 다른 유형의 문서는 정의 된 공식 공개 식별자 / 네임 스페이스, 스키마 등을 비롯하여 고유 한 SGML 준수 태그 이름 세트와 관련 속성을 정의합니다. 관련 유형. SGML 규칙을 준수하는 모든 문서 간의 일관성으로 인해 이러한 문서 내에서 데이터를 수집 / 처리하고 공통 형식을 공유하는 문서간에 데이터를 전송하는 코드를 작성할 수 있습니다.

SGML은 크기는 작지만 크기가 작은 문서에 대해 매우 정교하게 발견되었습니다. XML은 1996 년과 2006 년 사이에 개발되었다 그래서 집합 (단어 프로파일은 효과적으로 같은 의미 크고 작은 문서를 모두 처리 할 수있는 SGML 하위 집합과 )으로 개발되었습니다. 메타 언어의 하위 집합 인 XML은 그 자체로는 단순한 메타 언어이지만 메타 언어입니다. XML은 네트워크상의 시스템 간 간편한 저장 및 전송에 적합한 문서 형식을 설계하기위한 기초를 제공한다고 말할 수 있습니다.

SGML의 표준화 이후에 XML로 단순화되기 전에 인터넷이 등장했으며 문서와 느슨한 데이터 모두를 쉽게 전송하고 표시 할 수있는 문서 형식이 필요했습니다 . 그 결과 HTML 언어, 텍스트, 이미지, 오디오 등과 같은 다양한 데이터 유형을 표시하는 표준화 된 방법을 제공하는 18 개의 사전 정의 된 태그가있는 SGML 의 인스턴스 (가끔 응용 프로그램 이라고 함)가 생성되었습니다 . HTML을 이용한 SGML의 활용 시작 태그 또는 종료 태그를 생략하는 일부 요소. 이후 버전의 HTML에는 새로운 태그와 속성이 추가되어 기존의 일부 태그는 사용되지 않습니다. HTML 5까지는 항상 SGML의 하위 언어로 유지되도록 HTML을 변경했습니다.

XML이 표준화 된 후 기존 HTML 태그 이름과 태그 닫기, 네임 스페이스, 스키마 등에 대한 XML의 엄격한 결합을 결합한 XHTML이라는 인스턴스가 나왔습니다. XHTML은 처음에 데이터의 저장, 전송 및 표시에 유용하다는 약속을했습니다. HTML 5가 나올 때까지 웹 자료를 표시하는 가장 일반적인 방법으로 HTML을 대체하려고하는 것처럼 보였습니다. HTML 5에는 SGML에 정의 된 기능을 뛰어 넘어 특히 멀티미디어가 많은 웹 사이트에보다 풍부한 데이터 표시를 제공하는 몇 가지 구문 기능이 있습니다. 시간이 지남에 따라 HTML 5에 추가 기능이 추가되어 데이터 표시 / 사용에 대한 사용이 여전히 적어도 관련 데이터 표시에 이르기까지 새로운 XHTML 버전으로 대체되지 않을 정도로 향상되었습니다. HTML 및 XHTML 표준은 W3C 작업 그룹에서 수행하지만 이러한 언어의 실제 전파는 진보적 인 웹 디자이너에 의해 이루어지며 미디어 (광고 / 홍보 / 마케팅) 분야에서 일하는 것보다 진보적이지 않습니다. 다른 사이트와 비교할 때 광고 대행사의 사이트의 창의성을 살펴보십시오. 이 분야는 실제로 새로운 HTML 5 언어를 사용했으며 SVG, 오디오, 비디오 및새로운 API . HTML 5를 즉시 채택함으로써 YouTube와 다른 여러 사이트에서의 온라인 기술 교환 및 트릭으로 가속화되는 프로세스가 일반적으로 웹 디자이너들 사이에서 인기를 끌었습니다. 업데이트 된 XHTML 버전 인 XHTML5가 등장했지만 실제로는 XML이 엄격하게 파생 된 것이 아니라 XML로 직렬화 된 HTML5 버전입니다. 적은 비율의 사이트 만 사용하는 것으로 보입니다.

이것이 이러한 데이터 언어의 비하인드 스토리입니다. 나는 그것이 모두의 의미와 목적을 구별하는 데 도움이되기를 바랍니다. 철학적으로이 이야기는 새로운 기술 (인터넷)을위한 필수 인 에이블먼트 툴 (SGML)이 점점 더 다양한 요구가있는 새로운 환경에서 원래의 한계를 넘어서면서 개념적으로 더 단순하고 적용 가능하며 더 강력하고 강력 해지는 방법을 보여줍니다.


1

일반적으로 표준 세계에서 표준의 "프로필"은 표준이 제공하는 옵션을 선택하는 것입니다. 예를 들어 표준에서 문서를 UTF-8 또는 UTF-16으로 인코딩 할 수있는 경우 표준의 프로필이 필요할 수 있습니다. UTF-8로 인코딩됩니다. "서브 세트"라는 용어는 매우 유사한 의미를 갖습니다. "프로파일"이라는 용어는 조금 더 넓습니다.


감사! (1) 내 질문의 5 부에서와 같이 "응용 프로그램", "서브 세트"및 "프로필"의 의미와 차이점은 어떻습니까? (2) "XHTML은 HTML을 확장하고 부분 집합하는 미래의 문서 유형 군의 기초"에서 XHTML이 HTML의 부분 집합이거나 HTML이 XHTML의 부분 집합을 의미합니까?
모든 StackExchange for
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.