xml이라는 것이 있고 xhtml이라는 것이 있던데요, 도대체 차이가 뭔가요?

mywin의 이미지

xml은 제작자가 xsd 확장자인 파일로 정의한 요소를 확장자 xml인 파일에서 태그로 사용할 수 있도록 한 것이 xml인것으로 나름 생각을 정리했습니다. 그리고 레퍼런스나 여타 참고 사이트에서 설명한 방식대로 브라우저에서 표시가 되더군요. 그런데 xhtml이라는 것은 설명한대로 표시가 되지 않습니다. validator.w3.org에서 검사기로 xhtml 파일(확장자를 그대로 xml로 하고)을 검사해봤더니 에러가 수두룩하게 쏟아집니다. 나름 요소를 넣을 수 있다고 하길래 xmlns 속성을 사용해서 네임스페이스를 언급했는데, 이 부분에서 xmlns라는 속성을 사용할 수 없다고 검사기가 설명하고 있습니다. 그러면 요소 정의를 어떻게 해야 하는 것인가요?
그리고 응용프로그램에서 xml을 xsd에 맞게 해석한다고 하던데요, 그것 직접 만들어야 하는 것인가요?
그리고 브라우저에 이런것이 포함되어 있는 것인지 궁금합니다.
html이라는 것도 그 유효함을 검사해야 할 텐데요, html에서는 네임스페이서를 언급하지 않는 것은 이를 생략했기 때문인가요? 그렇다면 검사기는 어떤 네임스페이스를 기본으로 인식하는지요? 그리고 유효성 검사의 기준이 되는 xsd라는 것 또는 dtd라는 것은 어디에서 찾는지 궁금합니다.
감히 제 감으로는 이런 것들이 브라우저가 태그를 인식하는 방식과도 관련이 있는 것 같다는 생각이 듭니다. 이 생각이 맞을까요?
왜 xhtml이라는 것을 배워야 하나요?

klara의 이미지

xhtml은 이미 형식이 정의되어있는 xml입니다.
새로운 xml 문서를 정의할 순 있겠지만 그건 xhtml이 아닌 또 다른 xml문서일 뿐입니다.

그리고 이제 와서 xhtml을 굳이 배울 필요는 없습니다.
한때 xhtml로 이동하는 듯이 보였지만 결국 지금 대세는 html5니까요.

mywin의 이미지

지금 아래의 코드는 xml 방식으로 나름 정의한 네임스페이스를 루트 요소에서 언급해본 것입니다.

[XMLContent18helper5.xhtml]

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="/xsd/xmlstylesheet18helper5.css"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:sh="http//handsoft.iptime.org:60002/xsd" xmlns:w3="http://www.w3.org/2001/XMLSchema-instance" w3:schemaLocation="http://handsoft.iptime.org:60002/xsd <a href="http://handsoft.iptime.org:60002/xsd/XMLContent18helper5.xsd">
<head>
<title>test</title>
</head>
<body>
<div>The" rel="nofollow">http://handsoft.iptime.org:60002/xsd/XMLContent18helper5.xsd">
<head>
<title>test</title>
</head>
<body>
<div>The</a> wind is blowing to the end of the east.</div>
<sh:description>
young <sh:bold>media</sh:bold>
</sh:description>
</body>
</html>

원래는 이런 식이었습니다.

[XMLContent18helper5.xhtml]

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="/xsd/xmlstylesheet18helper5.css"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<div>The wind is blowing to the end of the east.</div>
<description xmlns="http://handsoft.iptime.org:60002/xsd">
young <sh:bold>media</sh:bold>
</sh:description>
</body>
</html>

아래와 같은 방식이라고 할 때에 어떻게 나름 제작한 xsd 파일을 어떻게 찾을 수 있을까요? 그래서 비전문가적인 소견으로써 꼭 schemaLocation을 언급해야 한다고 생각했습니다. 그래야 xsd 응용프로그램이 xsd 파일을 찾을 수 있을테니까요? 그렇게 하려면 xml 권고안이 권장하는 wwww.w3.org/2001/XMLSchema-instance를 언급해줘야 합니다. 그래서 그 위에 언급한 방식으로 파일을 재편집해봤습니다. 위의 방식을 인식을 못하고요? 그리고 그 아래의 코드에 대해서도 xmlns라는 속성을 사용할 수 없다고 나옵니다. 아래는 레퍼런스에서 언급한 방식대로 한 것인데도 말입니다.

안개 걷히고 구름 걷히면 빛이 내려 않는다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.