<xml>タグを使った具体例と代替タグの意味とは?

このQ&Aのポイント
  • HTMLの<xml>タグを使用した具体例と、代替タグについて解説します。
  • <xml>タグを使わずに同様の機能を実現する方法についてもご紹介します。
  • さらに、<xml>タグの意味や使い方についても詳しく解説します。
回答を見る
  • ベストアンサー

<xml>タグを使った例

つい先日も質問しましたが、具体例を記述したいと思います。 HTMLは以下の感じです。 <form name="frm"> <a href="#" onclick="javascript:call('test');">リンク</a> <xml id="includeXls"> <body scroll="no" style="margin:0 0 0 0"> <iframe name="fra1" src='2.html' height=100% width=100%> </body> </xml> </form> <script language="javascript"> <!-- function call(did){ var arg = "resizable=1,scrollbars=0,width=600,height=480,toolbar=1,menubar1=,directories=0,status=0"; var subWin; if (subWin != null) { if (!subWin.closed) { subWin.close(); } } subWin = window.open("", did, arg); subWin.document.open(); subWin.document.write(includeXls.innerHTML); subWin.document.close(); subWin.focus(); } //--> </script> これを適当な名前でhtmlを表示して、2.htmlという適当なhtmlを指定した「リンク」をクリックすると、 それが開きます。 このとき、<xml>タグを使わずに別のタグを使ってどうようなことができるのならそれを教えていただけたらと思います。 また、この<xml>タグはどういう意味になるのかも教えていただけたらと思います。 よろしくお願いします。

  • HTML
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

><xml>タグはHTMLタグではなく、xmlのタグになるのでしょうか?xmlはタグが自由だと言う記憶があるのですが、この<xml>というのは何のタグになるのでしょうか? <xml>は、HTMLのタグではありません。(他でもそう書かれていたと思います。) HTML中の未定義のタグは通常は無視されます。 IEのようなXMLパーサーを持ったブラウザでは、<xml></xml>がXMLのデータだと解釈できるので、そういう風に使える(XMLだと扱える)ということです。 ちなみにIEでは、jsの読み込みのように <XML ID="xmlid" SRC="data.xml"></XML> というような形で外部ファイルを読み込む(埋め込む)ことができます。 XMLの文書は、通常は、 <?xml version="1.0" encoding="Shift-JIS" ?> の様な形で始めます。 XMLでのタグは自由であるというのは、タグを自由に定義できるからです。 例えば、 <!ELEMENT adrsbook (person*)> <!ELEMENT person (name, office?)> <!ELEMENT name (#PCDATA)> <!ELEMENT office (company, email*)> <!ELEMENT company (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ATTLIST person ID ID #IMPLIED> のような感じでタグを定義します。こういうものをDTDと言います。 タグを自分で定義できるので一般にタグが自由に使えると言うのだと思います。 ただ、こうした、DTDによる定義がなくても、多分、合ってんだろうなあということで使えますけど、本来はこうした定義が必要です(構造がチェックできないから)。 XMLについて詳しくは、なんかの本でも読んで下さい。 というわけで、本来のXML文書のなかでは、<xml>タグというのはでてきません(多分w) つまり、HTMLの文章中に、XMLを解釈できる部分として<xml></xml>で囲まれた部分をデータとして保持するとでも考えたらいいのではないでしょうか。 <script></script>と同じようなものと考えればいいと思います。 多少の、語弊はあるかと思いますが、まあ、だいたい、そんなもんです。

ratsbane
質問者

お礼

ありがとうございました。<xml>がIEにXMLとして扱われていたんですね。詳しく教えていただきありがとうございました。とても勉強になりました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

includeXls.innerHTMLの部分は、IDで指定されたタグの中身をHTML文として置き換えるというような意味です。 <xml>タグを使っているのは、通常のHTMLのタグを使った場合には、<body></body>などのタグがそのままだとHTMLの<body>タグとかち合ってしまうことを避けるために使っているものと思われます。 IEは、XMLに対応しているので、 <xml></xml>の形でXMLを記述でき、またそのデータを編集したり、抽出したり、表示できます。

ratsbane
質問者

お礼

ありがとうございます。 <xml>タグはHTMLタグではなく、xmlのタグになるのでしょうか?xmlはタグが自由だと言う記憶があるのですが、この<xml>というのは何のタグになるのでしょうか?

関連するQ&A

  • javascriptで別ウインドウを開いたのですが背景設置が上手くいきません。

    いつもお世話になっております。 JavaScriptを使用し別ウインドウで画像を表示させているのですが、 そのウインドウの背景が上手く設定できません。 どのように編集すればよいでしょうか? 現在の状態は以下の通りです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>aaa</title> <script language="javascript"> <!-- function OpenWindow(){ var width = document.images['00'].width + 228; var height = document.images['00'].height +254; subWin = window.open("","subWin","status=no,menubar=no,toolbar=no,scrollbars=no,resizable=yes,screenX=0,screenY=0,width=" + width + ",height=" + height + '"'); with(subWin.document) { open(); write("<html><head><title>sample1</title></head>"); write("<body onload='window.resizeTo( document.images[00].width + 40,document.images[00].height + 120)'><div align='center'><img id='00' src='b/1b.jpg'><br>"); write("<button type='button' onclick='window.close()'>閉じる</button></body></div></html>"); close(); } } --> </script></head> 宜しくお願いします。

  • 小窓の出し方について教えて下さい。(2)

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=568520 先ほどご回答を頂き、小窓の開き方は解決致しました。 ↓ <script type="text/javascript"><!-- function subwin(imgsrc,imgalt){ sub1=window.open("","subwin","width=230,height=160,resizable=1"); sub1.document.open(); sub1.document.write("<html><head><title>"+imgalt+"</title></head>"); sub1.document.write("<body style='margin: 0;'>") sub1.document.write("<img src='"+imgsrc+"' alt='"+imgalt+"'>"); sub1.document.write("</body></html>"); sub1.document.close(); } //--></script> body内の、呼び出し部分は、 <a href="#" onClick="subwin('画像ファイルのURL','画像ファイルの説明'); return false;"><img src="p_1.jpg" border="0" width="70" height="48"></a> が、クリックして開く小窓に表示させるHTMLファイルで開かせたい 画像が同じページにあります。(大きさは横500縦600) もう1つ教えて頂いた↓ <script type="text/javascript"><!-- function subwin(file){ window.open(file,"subwin","resizable=1, width=230, height=160"); } //--></script> 以上をhead内に記述して、呼び出し部分は <a href="#" onClick="subwin('読み出すHTMLファイルのURL'); return false;"><img src="p_1.jpg" border="0" width="70" height="48"></a> のwidth=230, height=160をwidth=500, height=600にして上記ソースに加えると(?) 全部の小窓がwidth=500, height=600になってしまいます。 width=230, height=160の画像で開かせる小窓と width=500, height=600のHTMLで開かせたい小窓を 同じページに加えるには、どうしたらよいのでしょうか? ご回答宜しくお願い致します。

  • このタグをおしえてください

    辞めた社員が保存していました。 なんのタグでしょうか? <SCRIPT Language="JavaScript"> <!-- document.write("<img src='http://www.abc.com/acc/acclog.cgi?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </SCRIPT> 御手数ですがよろしくおねがいします。

    • ベストアンサー
    • HTML
  • JavaScriptを使ってXMLにタグを打ち込みたいんですが。。

    プログラミング初心者で申し訳ありません。 JavaScriptを使っているのですが、ボタンを押して、<math>~</math>の中に数式のタグを入力しようとしています。 現状のソースですが、 ファイル名:sample.xhtml ~ <math id="math" xmlns="http://www.w3.org/1998/Math/MathML"> #数式のタグの入力位置 </math> <script type="text/javascript"> function mul1(){ var info = document.getElementById("math"); var txt1 = document.createTextNode("<mi>"); var txt2 = document.createTextNode("x"); var txt3 = document.createTextNode("</mi>"); info.appendChild(txt1); info.appendChild(txt2); info.appendChild(txt3); } </script> <form> <input type = "button" value="x" onclick ="mul1()" /> </form> ~ となっています。 理想は <math id="math" xmlns="http://www.w3.org/1998/Math/MathML">  <mi>x</mi> </math> ボタンクリック後こういう感じでタグを挿入したいと考えています。 function mul1(){ var info = document.getElementById("math"); var element1 = document.createElement("mi"); var element2 = document.createElement("/mi"); var txt = document.createTextNode("x"); info.appendChild(element1); info.appendChild(txt); info.appendChild(element2); } 要素追加と思いcreateElement()で検証してみたんですが、結果はなにも表示されませんでした。 言葉不十分で申し訳ありませんが、解決法教えていただけませんか? よろしくお願いいたします。

  • サブウィンドウから親画面に渡すには

    サブウィンドウでチェックを入れた項目を、「選択」というボタンを押すことで親画面のselectボックス内に表示させたいのですが、下記のどのようなコードを追加すればよろしいでしょうか。 --------------------------------------- <html> <head> <script LANGUAGE="JavaScript"> function WindowOpen(){ subWin=window.open(); subWin.document.open(); subWin.document.write("<html><body><form name='subform'>"); subWin.document.write("<input type='checkbox' name='check1'>東京"); subWin.document.write("<br><input type='checkbox' name='check2'>大阪"); subWin.document.write("<br><input type='checkbox' name='check3'>名古屋"); subWin.document.write("<br><input type='button' name='btn2' value='選択'>"); subWin.document.write("</form></body></html>"); subWin.document.close(); } </script> </head> <body> <form name="myform"> <input type="button" name="btn1" value="参照" onClick="WindowOpen();"> <select name="slct1" size="3" style="width:50%;"> <option> <option> <option> </select> </form> </body> </html>

  • formについて

    JavaScriptを使ったアンケートについて <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>アンケート</title> <script type="text/javascript"> function Conf(){ a = document.forms[0].Email.value; if(a.match(/[a-zA-Z0-9_.]+@+[a-zA-Z0-9.]+$/)==null){ alert("間違っています"); } subWin=window.open("about:blank","form_data","width=300,height=300"); subWin.document.open(); subWin.document.write(a); subWin.document.close(); } </script> </head> <body> <form> <p>■メールアドレスを記入して下さい</p> <input type="text" name="Email" id="Email" size="40" /> <input type="button" value="確認" onClick="Conf()" /> </form> </body> </html> これだと、メルアドが間違っていますとalertが表示された後に、サブゥインドウが表示されてしまいます。 アンケートフォームを作りたくてJavaScriptを勉強中なのですが、メアドの入力が合っている場合のみサブゥインドウを表示させる方法が分からず、質問させて下さい。回答よろしくお願い申し上げます。

  • javascriptで<object>タグのリンクを変えたいのですが

    <object>タグで指定したリンクをjavascriptで変えたいのですが・・・。 以下のように記述しているのですが上手くいきません。 <html> <head> <script langage="javascript"> function a(){ obj=document.getElementById("Link"); obj.getAttribute("data")=c.html; } </script> </head> <body onLoad="a()"> <object data="d.html" id="Link" width="700" height="500"></object> </body> </html> どなたかご教授宜しくお願いします。

  • 投稿画像の確認画面

    下記は画像を投稿したとき投稿画像を確認するPerlコードです、 別画面に投稿した画像が表示されたのですが最近画像が表示されなくなりました、何処か間違っているのか分かりませんよろしくお願いします。 <SCRIPT language="JavaScript"> <!-- var CR = "\\r"; var LF = "\\n"; var tag_change; var amp_change; var space_change; function check2(Form1){ var new2 = window.open('','new2','scrollbars=yes, resizable=1, WIDTH=100, HEIGHT=100'); new2.moveTo(0,0); new2.resizeTo(700,800); new2.focus(); whole = 2; h_mode = 1; space_change = 1; tag_change = 1; amp_change = 1; honbun = 1; new2.document.writeln("<HTML lang='ja'>"); new2.document.writeln("<HEAD>"); new2.document.writeln("<META HTTP-EQUIV=\\"Content-Script-Type\\" CONTENT=\\"text/javascript\\">"); new2.document.writeln("<TITLE>画像コメント確認<"+"/TITLE>"); new2.document.writeln("<"+"/HEAD>"); new2.document.writeln("<BODY BACKGROUND='./kabe/k2.gif'>"); new2.document.writeln("<FONT SIZE=4 COLOR='NAVY'>"); idata = window.document.Form1.pr.value; new2.document.writeln(lineX(idata)); new2.document.writeln("<"+"/FONT>"); new2.document.writeln("<CENTER>"); imag = "file:///" + document.Form1.file_1.value.replace(/\\\\/g, '/'); new2.document.writeln("<img src=\\""+imag+"\\" alt='画像がありません'>"); new2.document.writeln("<"+"/CENTER>"); new2.document.writeln("<SCRIPT type='text/javascript'>"); new2.document.writeln("<!-"+"-"); new2.document.writeln("var sw = confirm('画像、コメントOKですか?');"); new2.document.writeln("<"+"/SCRIPT>"); new2.document.writeln("<"+"/BODY>"); new2.document.writeln("<"+"/HTML>"); new2.document.close(); if (sw = new2.sw) { new2.close(); // new2 はレスと画像を確認したwindow var new1 = window.open('','new1', 'width=50, height=50,resizable=1'); new1.close(); } else { new2.close(); // new1 は画像確認したwindow var new1 = window.open('','new1', 'width=50, height=50,resizable=1'); new1.close(); } return sw; }

  • タグを書き込む

    <body> ・ ・ ・ <script type="text/JavaScript"> <!-- function sample(){ document.write("あいうえお<br />") } // --> </script> ・ ・ ・ </body> とするとほかのタグが消えてしまうのですが、ほかのタグを消さずに書き足すことはできないんですか?

  • 小ウインドウのスクロールバー

    小さいウインドウを出してメニューを作ろうと思っています そこで、早速作ってみたところ、小さいウインドウにはスクロールバーがありませんでした 小ウインドウには、スクロールバーは表示できないのでしょうか? 表示させる方法がありましたら、教えて下さい ちなみに、小ウインドウは下記のようにしています <SCRIPT LANGUAGE="JavaScript"> <!-- function subopen(){ subwin=window.open("menu.html","subwindow","width=290,height=185") } function subclose(){ subwin=window.open("","subwindow","width=290,height=185") subwin.close() } // --> </SCRIPT>

専門家に質問してみよう