最速怪談選手権

今更こういう事を質問して大変恥ずかしいのですが、XML初心者の私に、ぜひ教えて頂けませんでしょうか。

XMLでテキストを書いて、XSLで構築し、CSSでデザインをする事はよくわかりました。
しかしXMLについてのホームページも沢山拝見しましたが、どれもエクセルで作るような、テーブル使用の会員のページやら、そういったものばかりで、はたして普通のホームページによる、日記やら写真館やらそういったものはXMLではできるのかそうではないのかが、はっきりせずにいます。

そして、説明をみても拡張子はXMLで、htmlではないのに、XHTMLはhtmlでいいんですよね。
XML文書で開いたら普通に表示されるファイルをhtmlで開いてみましたが、もちろんうまく表示される訳もなく・・。
ホームページでXMLを表示させるには、index.xmlになるのでしょうか。それとも、XMLは普通のホームページには不向きですか?

こんな見当違いな質問をして、大変申し訳ございません。
どうぞよろしくお願い致します。

A 回答 (4件)

参考になるかどうか分かりませんが、私のサイトは XML を使っています。


商用サイトではなく、個人的な趣味のサイトです。

私は、XHTML を使っていません。XSL に独自のルールを書いておいて、
コンテンツの含まれた XML を XSL で変換して HTML にしています。

ホームページ作成ソフトを使用しない場合、統一したデザインでホームページを
構築するのはなかなか難しいものです。特にちょっと気の利いたデザインをするには、
table タグを巧妙に組み合わせたり、コンテンツ増やすたびにこれは面倒です。

私の XML では、文章を <Section> タグで囲うだけで、それなりの見栄えがするように
しています。もちろんこのタグは独自のもので、XSLT のほうで <table> タグなどに
変換されます。

[XML] http://knatech.ifdef.jp/material/index.xml
[HTML] http://knatech.ifdef.jp/material/index.html
[XSL] http://knatech.ifdef.jp/xsl/kntag_standard.xsl

1 つめの XML ファイルは、ブラウザで開くとエラーになるかもしれないので、
右クリックで保存するか、ブラウザで開いて「ソース表示」してください。

ちなみに、変換プロセッサは XT、Xalan、Saxon などがありますが、私は Xalan
を使用しています。
    • good
    • 0

ポイントはHTMLはデータ(文章や画像へのURL等)とレイアウト(テーブル、フォント、色等)が混在しているということです。


ホームページでのみデータを使用するのであれば、混在していても問題はありません。
しかし、ホームページに使用しているデータを他のアプリケーションで使用したいと言った場合に混在しているとアプリケーションのデータとしてあまり適切ではありません。まして、ホームページのレイアウトを変更するとこのアプリケーションへも影響がでます。
そこでデータはデータ、レイアウトはレイアウトで分けられると便利となったわけです。
実際XML(データ)をホームページにも表示するし、Java等で作成したアプリケーションでも利用できるとなればかなり便利です。
それにホームページだけに限っても、データ部分をXML、レイアウトをCSSやXSLTで分けて記述しているとCSS、XSLTを変更するだけでホームページのレイアウトを変更できます。(例えば、ホームページを複数もっていてデータを共有してレイアウトを変えたいときとか便利です)
XHTMLはHTMLをXML準拠しただけですが、XML形式になっているためXSLT、DOM等での操作が可能になるという利点があります。

ちなみにホームページでXMLを表示させるには
XML+CSSかXML+XSLTのパターンが多いです。
この場合もすべてXMLである必要はありません。
HTMLもあってよいと思います。
XML+XSLTの場合のindex.htmlサンプルとしては
以下のような感じです。
index.html
<script language="JavaScript">
<!--
var XmlFile = "xml/index.xml" ;
var XslFile = "xsl/index.xsl" ;
var xmldoc ; // XML DOM ドキュメント
var xsldoc ; // XSL DOM ドキュメント

// XMLファイル読込
xmldoc = new ActiveXObject("Microsoft.XMLDOM") ;
xmldoc.async = false ;
xmldoc.load(XmlFile) ;

// XSLファイル読込
xsldoc = new ActiveXObject("Microsoft.XMLDOM") ;
xsldoc.async = false ;
xsldoc.load(XslFile) ;

// ファイル変換
document.write(xmldoc.transformNode(xsldoc));
//-->
</script>
記述はこれだけです。
あとはindex.xmlというデータ、
index.xslというレイアウト(index.xmlを加工してHTMLを出力する)
です。
    • good
    • 0

先の方が詳しく説明されていますが、



XMLは、タグの「書き方の規格」です。
たとえば、タグは、<←で始まって、>←で終わる。
閉じタグは必要、小文字と大文字は区別する、といったことです。

実際のタグの名前や、機能については何も決まっていません。(HTMLでいうと<br>と書くと「改行する」といったことは何も決まっていません。)

で、そのXMLのルールにのっとって
ブラウザで表示するための、
タグの一覧を決めたのがXHTMLです。

なのでXMLで、一般のホームページを作ろうとすると、
XSLを書いたりいろいろ大変ですが、
XHTMLだと、HTMLとだいたい同じように書けるので
一般のホームページにも向いています。

ちなみに、ほかにも、XMLのルールにのっとって、
タグを決めたものには、XHTMLのほかに、
RDFなどめちゃくちゃたくさんあります。
    • good
    • 0

まず、XMLについて、もう少し理解する必要があるように思います。

XMLは、言語規定言語と呼ばれ、「他の言語を規定するための言語」という側面があります。他の言語の構文規則・単語などを決めて、他の言語を作るための言語、がXMLという技術です。
XHTML、XSLなどといったものはXMLという言語も、XMLの方法で、「どのようにかけばいいか」が規定されているわけです。XMLは、確かにXHTMLを通じてホームページを書くのに利用されますが、それは「XMLで規定されたXHTMLという言語」でできる、XML全体から見れば一部の機能にすぎません。XMLはXHTMLではありません。XMLを使ってどう書くのかを決められた言語の一つがXHTMLです。
http://www.atmarkit.co.jp/aig/01xml/xml.html
http://www.atmarkit.co.jp/aig/01xml/xhtml.html
http://www.atmarkit.co.jp/fxml/dictionary/indexp …

XHTMLを使って作成した場合も、拡張子はHTMLです。ホームページでXMLを表示させるときも、拡張子はHTMLのままでいい場合が多いと思いますが。
WEBサーバーから見ている人のブラウザーにデータを渡すとき、WEBサーバーは「一体何のデータをブラウザーに渡しているのか」を示すために、MIMEタイプという文字列を送ります。これはHTTPヘッダーの中に入っています。
http://www.geocities.co.jp/Hollywood/9752/mime.h …
このMIMEタイプは拡張子と対応してつけられていますが、上記のはあくまで一般的に使われているものをしめしただけであり、WEBサーバーの設定を変えれば、どのMIMEタイプをどの拡張子と対応させるかを自由に変更することができます。
HTMLは、「text/html」、XHTMLは、「text/xhtml」なので、拡張子を分けているサーバーがないとはいえません。ただ、普通は、「text/html」でXHTMLのページを送ってもちゃんと表示されますので、拡張子は「.html」のままでいいと思います。

>それとも、XMLは普通のホームページには不向きですか?
そんなことはないと思います。ホームページは、エディタなどでタグを直打ちするつもりなのでしょうか?今は、ツールがたくさんあるので、仕事でXMLやXHTMLの勉強をしていてその練習のために手書きでタグ打ちしたい、といった特別な事情でなく、単にページを作りたいのであれば、タグの直打ちはあまりお勧めしません。
ツールといいましたが、ホームページビルダーのような市販ソフトで、アップロードする前にページを作りやすくするソフトもありますが、blogやwikiといった、掲示板の延長のような形で、アップロードした後にブラウザー上でページを作るソフトもあります。
http://pukiwiki.org/
このpukiwikiは、XHTMLでかかれており、日記や写真館といった目的に使用しようと思えば使えます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!