【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/11/30(水) 01:08:08関連情報は、>>2-10位に適当に。
※RSSなどのWeb限定の話題は、Web板でどうぞ(XHTMLはローカルでも使うから可)。
前スレ? 【必須?】XML技術【使ってる?】
http://pc8.2ch.net/test/read.cgi/tech/1090253584/
0449デフォルトの名無しさん
2007/04/26(木) 18:53:26あんたが何をして何ができないのかがわからんよ。
alert("XMLの内容"); じゃだめなの?
0450445
2007/04/26(木) 19:08:08それができません…サンプルからやってもです
0451デフォルトの名無しさん
2007/04/26(木) 19:10:56A. 頭が悪いからです
としか答えようがないんだが
0452デフォルトの名無しさん
2007/04/26(木) 21:16:18>Q. できません
>A. 頭が悪いからです
今のところ模範回答だよな・・・。
それにサンプルって何よ?
そもそも、ブラウザ実装のjavascriptでxml扱う場合はxmlの話じゃなくてブラウザのjavascriptのお話じゃないか?
板違いではなくて?
どうせ何処でも同じ事言われるんだが。
0453デフォルトの名無しさん
2007/04/26(木) 23:26:31そーゆー、XMLの構造を認識しなければいけないけど、やってること自体は大したこと無い、という領域こそ、XSLT でさくっと済ますべきところだと思う。
>447 も書いてるけど特定が厳しいルールほど優先度が高いから
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/x:abc/y:def/@hoge">
<xsl:attribute name="hoge">foo</xsl:attribute><!-- やりたいことに置き換える-->
</xsl:template>
で、いいんじゃねーの?
0454デフォルトの名無しさん
2007/04/26(木) 23:29:43PDFは行けるみたいだけどWinHelpとかは厳しい?
0455デフォルトの名無しさん
2007/04/27(金) 00:22:29XSL-FO自体は印刷物用途に耐えられるほどの仕様。PDF位にしか変換できないのはアプリケーション側の実装の都合によるもの。
よってその質問は的を射てない。
0456デフォルトの名無しさん
2007/04/27(金) 00:27:590457デフォルトの名無しさん
2007/04/27(金) 01:56:01サンプルとは、この本のです
10日でおぼえるXML入門教室 第2版 (単行本)
山田 祥寛 (著)
>>ブラウザ実装のjavascriptでxml扱う場合はxmlの話じゃなくてブラウザのjavascriptのお話じゃないか?
たぶん、そうだと思います・・・・
0458デフォルトの名無しさん
2007/04/27(金) 02:08:40もし、これだとしたら、どうすれば宜しいでしょうか?
0459デフォルトの名無しさん
2007/04/27(金) 02:11:24その行の下に書いてあるじゃん。
0460デフォルトの名無しさん
2007/05/04(金) 02:14:56↓のRelaxNG文書のrefを展開した形はどのようになるのでしょうか?
<?xml version="1.0" ?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<ref name="hoge"/>
</start>
<define name="hoge">
<element name="hoge">
<choice>
<ref name="foo"/>
<ref name="hoge"/>
</choice>
</element>
</define>
<define name="foo">
<element name="foo">
<text/>
</element>
</define>
</grammar>
0461デフォルトの名無しさん
2007/05/04(金) 09:14:010462460
2007/05/04(金) 10:28:150463デフォルトの名無しさん
2007/05/04(金) 12:42:380464デフォルトの名無しさん
2007/05/07(月) 19:50:380465デフォルトの名無しさん
2007/05/07(月) 21:55:050466デフォルトの名無しさん
2007/05/10(木) 21:22:130467デフォルトの名無しさん
2007/05/11(金) 14:55:34サーバにXMLファイルを置いて、chmod 600にした場合、同じサーバにおいてあるプログラムは基本的にXMLの読みができるよな。
んでもブラウザのジャヴァスクからアクセスしようとすると、クライアント側で全ての処理が行われるからXMLにアクセスできなくなっちゃう。
今んとこXMLHTTP使ってデータ取得してるんだけど、できることならXMLのデータをユーザ以外が読めないようにしたいわけなんだわ。
ジャヴァあたりのサーブレットが標準ぽいけど、それやると使えるサーバが少し限られてるからできるだけ避けたいんだよね。
誰かこれやる方法しってる人いない?
0468デフォルトの名無しさん
2007/05/11(金) 15:34:250469デフォルトの名無しさん
2007/05/14(月) 02:36:26alldata.xmlでテーブルを表示し、そのリンクがクリックされると、onedata.xmlを表示するという単純なものです。
alldata.xmlはDTDが定義され(alldata.dtd)、その中でENTITYとして、onedata.xmlを持っています。
データを増やすときは、onedata.xml、twodata.xml・・・のようにして対応するENTITYを作ってやれば、
リンク先のページができると同時に、自動的ににalldata.xmlテーブル表示が拡張される、という仕組みを考えています。
実際に作り始め、alldata.xmlの表示はできたのですが、
リンク先のonedata.xmlを作成し(その中でonedata.dtdも定義)、allldata.xmlを表示しようとすると、
「DOCTYPE 宣言は複数行えません」と出てきてしまいます。
onedata.xmlからDTDを削除すれば、alldata.xmlは表示されるのですが、今度はonedata.xmlの表示が真っ白・・・。
この場合、どうやればalldata.xmlとonedata.xmlを両立できますか?
(特に複雑なデータ構造ではないと思っていますので、XML使い始めて早々にこんなところで躓くとは・・・。)
0470デフォルトの名無しさん
2007/05/16(水) 16:21:19xsdは2種類あり(a.xsd, b.xsd)、a.xsdからb.xsdをincludeしています。
SchemaFactory#newSchema(new Source[]{a.xsdのソース, b.xsdのソース});
でSchemaを取得し、Schema#newValidator()でValidatorを取得しています。
取得できたValidatorで入力されたxmlの検証を行うと以下の例外が発生します。
org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'b.xsdで宣言されている要素名' to a(n) 'element declaration' component.
newSchema(new Source[]{b.xsd, a.xsd})でa.xsdとb.xsdの順番を入れ替えると今度は
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'xmlのルート要素名'.
newSchema(a.xsdのみ)とすると
org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'b.xsdで宣言されている要素名' to a(n) 'element declaration' component.
xsdが複数になってしまった場合の検証方法を教えていただけないでしょうか。
0471デフォルトの名無しさん
2007/05/19(土) 16:45:56XSLでは、さらに他のXMLのデータをdatafldで表示しています。
おそらく、内部ではXML→XSL→他XMLの順に読み込まれていると思いますが、
一旦XSLが表示された後、データバインドするときにリフレッシュが走ってしまいます。
画面をリフレッシュすることなくデータバインドさせたいのですが、何か方法はありますでしょうか?
0472471
2007/05/19(土) 18:52:54画面をひとつの巨大なテーブルで作っていて、そのテーブルの最後にデータバインドしていたのがいけなかった。
データバインドをそのテーブルの外に出したらあっさりと解決。
0473デフォルトの名無しさん
2007/05/20(日) 00:41:04ところで、UMLとXMIとコード生成の話なんだけど、XMIってクラスの雛形みたいな
ものや継承関係・属性なんかは網羅できているけど、逆にシーケンス図やアクティビティ図
みたいな動的な図に関しては規定が無いようなんだけど。
業界標準みたいなもの無いんですかね、誰か知ってたら教えてください。
0474デフォルトの名無しさん
2007/05/20(日) 15:53:20サーバーサイドでXMLプログラミングを行いたいのですが
調べたところPrpfessionalにアップデートしなとできないとの
事でしたが、Windows XP Home Editionではできないのでしょうか?
0475デフォルトの名無しさん
2007/05/21(月) 04:06:53Home Edition じゃ IIS 使えないんだっけ?
Windows コンポーネントの追加と削除で IIS がなければそうかも。
0476デフォルトの名無しさん
2007/05/21(月) 11:14:13IISのクライアント版は制限つきでXPpro,鯖2kだな。
てかわざわざ、IISなんて使うって事は結局ASPってことでしょ、スレチじゃね?
鯖立てたいだけならlinuxでhttpd走らせるよろし。
もし、その程度ができんなら鯖には手を出すな。
0477474
2007/05/21(月) 16:10:35入門書ではASPを使う事になっていました
0478デフォルトの名無しさん
2007/06/01(金) 01:41:27ttp://www.atmarkit.co.jp/fxml/tecs/024xpath/24.html
<xsl:for-each select="document(books/book/@href)/book">がFireFoxで動かネェ。
関数の引数を↓のようにシングルクォートで囲めばFireFoxではOKだが、今度はIEがダメだァ・・・
<xsl:for-each select="document('books/book/@href')/book">
0479デフォルトの名無しさん
2007/06/04(月) 23:17:510480デフォルトの名無しさん
2007/06/05(火) 00:56:30サイズも色も変更できるのに・・・。
0481デフォルトの名無しさん
2007/06/08(金) 15:35:29この目的のために XML よりもよい選択肢はあるかな?
0482デフォルトの名無しさん
2007/06/08(金) 18:11:590483デフォルトの名無しさん
2007/06/08(金) 18:13:56http://pc11.2ch.net/test/read.cgi/tech/1140006937/
0484デフォルトの名無しさん
2007/06/10(日) 07:23:33その階層構造が属性付き文章の様な陳述文章ならxmlベースの直列化形式で
良いと思うがそうじゃなきゃそれ以外でなんでも良い。
つーか、総称符合化が理解できんならxml使い方間違えるに10000ペソ賭けるぜ
ruby圏でxml批判してるやつらとかさ。
SGMLの時におなじこと聞いたぜ。
0485デフォルトの名無しさん
2007/06/10(日) 09:59:29ググっても一件も引っかからないぜ
0486デフォルトの名無しさん
2007/06/10(日) 11:38:360487デフォルトの名無しさん
2007/06/10(日) 22:57:30http://news21.2ch.net/test/read.cgi/bizplus/1181435245/
XMLがこんなに普及するとはなぁ
0488デフォルトの名無しさん
2007/06/11(月) 16:28:01あ、義務なのか
ウホッ
0489デフォルトの名無しさん
2007/06/16(土) 14:59:50XSLTを書いて、ブラウザ上でXMLを表示させることは可能ですが、
これがXMLからのHTML化ということなのでしょうか?
ソースを見てたらXML文書が全部見れてしまいます。
ソースも必要なところだけ表示させてみたいのですが・・・。
0490デフォルトの名無しさん
2007/06/16(土) 15:00:140491デフォルトの名無しさん
2007/06/16(土) 15:01:45XSLTでXMLからXHTMLに変換するんだろうが。
0492デフォルトの名無しさん
2007/06/16(土) 16:04:51サーバで(X)HTML化するスクリプトでも動かせ
0493デフォルトの名無しさん
2007/06/16(土) 19:22:020494デフォルトの名無しさん
2007/06/16(土) 22:42:22現在XSLTのクライアントサイド駆動での動かし方としては
RSSのXHTML表示ぐらいなもんだ。
0495489
2007/06/17(日) 22:03:57ご回答ありがとうございました。
ローカルでXSLTファイルにXML文書を
D&DすればHTML出力(生成)できるものなのでしょうか?
0496デフォルトの名無しさん
2007/06/18(月) 23:19:550497デフォルトの名無しさん
2007/06/19(火) 00:45:22なんかもう質問がしょーもなさすぎるので細かいところは勝手にしらべろ。
結論だけ教えてやろう。 できる。
0499デフォルトの名無しさん
2007/06/19(火) 17:17:29たしかにできるっちゃ出来るけどw
スタイルシートとソース文章をトランスフォーマに渡すスクリプト書かなきゃ。
>>498 まあ、がんばってここに来ないようにしろ。
0500デフォルトの名無しさん
2007/06/19(火) 22:58:030501デフォルトの名無しさん
2007/06/20(水) 00:40:250502デフォルトの名無しさん
2007/06/20(水) 02:00:150503デフォルトの名無しさん
2007/06/20(水) 10:12:030504デフォルトの名無しさん
2007/06/20(水) 11:44:480505デフォルトの名無しさん
2007/06/20(水) 11:50:090506デフォルトの名無しさん
2007/06/20(水) 12:59:440507デフォルトの名無しさん
2007/06/20(水) 13:30:55実装にexpat使ってるライブラリが早いとかその程度の違いでしかないと思う。
0508デフォルトの名無しさん
2007/06/20(水) 14:13:370509デフォルトの名無しさん
2007/06/20(水) 16:21:07わざわざ xerces:: を付けるのも面倒だし、using namespace xerces しても解決しないし、
何かいい方法はありませんですか?
0510デフォルトの名無しさん
2007/06/20(水) 17:53:11javaで限定名がぶつかる時、完全修飾名で書くとC++の比じゃないぞ。
それにxml関係ない。
0511デフォルトの名無しさん
2007/06/20(水) 20:45:57ところで、MSXMLも#importで読み込めば名前空間MSXML2に入ったと思うが
0512デフォルトの名無しさん
2007/06/21(木) 00:00:34どうやってやるの?
Javaでのやり方が分かるんだけど・・・
0513デフォルトの名無しさん
2007/06/21(木) 01:28:34cgiに渡してそっちでcharset見てエンコードするしかない。
0514デフォルトの名無しさん
2007/06/21(木) 12:36:36<HTML><HEAD></HEAD><BODY>
<UL>
<LI>本一冊を選びました</LI>
<LI>本一冊を選びました</LI>
<LI>本一冊を選びました</LI>
</UL>
</BODY></HTML>
上記に出力するには下記を用いて修正するみたいです
<?xml version="1.0" encoding="shift_JIS" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="shift_JIS"/>
<!-- 文書 -->
<xsl:template match="/">
<root>
<xsl:apply-templates select="book"/>
</root>
</xsl:template>
<!-- 書物リスト -->
<xsl:template match="book">
<book>
書物リストを処理しました。
<xsl:apply-templates select="book"/>
</book>
</xsl:template>
<!-- 書物 -->
<xsl:template match="book">
<book>書物を一冊処理しました。</book>
</xsl:template>
</xsl:stylesheet>
どう修正すれば良いのでしょうか。
0515デフォルトの名無しさん
2007/06/21(木) 14:10:32かなり専門的な世界だから別れてても良いけど需要ないだろうね。
0516デフォルトの名無しさん
2007/06/21(木) 15:03:170517デフォルトの名無しさん
2007/06/21(木) 15:12:33一から勉強しなおした方がいいような
0518デフォルトの名無しさん
2007/06/21(木) 15:38:52WSH?何を言ってるんだいチミは?
0519デフォルトの名無しさん
2007/06/21(木) 16:46:28◯( ´∀` )◯ < 僕は、PowerShellちゃん!
\ / └────────────
_/ __ \_
(_/ \_)
lll
0520デフォルトの名無しさん
2007/06/21(木) 17:22:20つか、MSは実装が信用できないw
特にMSXMLとかTrident・・・.netつかってる連中はよくあんな糞実装使ってられるよ。
tasman結構まともなのに。
0521デフォルトの名無しさん
2007/06/21(木) 20:52:020522512
2007/06/21(木) 23:00:19まじですか?
困ったなー。
0523デフォルトの名無しさん
2007/06/21(木) 23:26:29やたら変な独自拡張多くない?
>>521
つーか常識、クライアントサイドが勝手にディスク読み書きしたら危ないだろ?
0524デフォルトの名無しさん
2007/06/23(土) 12:43:140525デフォルトの名無しさん
2007/06/23(土) 14:13:28Domでルート要素.getElementNameより
Saxで1回目のstartElementで取得するほうがいいよね?
0526デフォルトの名無しさん
2007/06/23(土) 15:50:300527デフォルトの名無しさん
2007/06/23(土) 16:04:17どうしても解らないので教えてもらいたいです。
XMLファイル内容を、XSLを使って表示することは出来ました。
それなのにXML内にある改行文字のところが改行されていません。
どうしたら改行を表示できるのでしょうか?
0528デフォルトの名無しさん
2007/06/23(土) 17:38:12何の効果を期待してるか知らんがメモリの消費量が少ない、か演算量が少ない、
ってんならストーリーム(pull)型も良い。
DOMは結果を保持する必要がある場合、
pushは最終的には文書のすべてについて処理する必要がある場合。
pullはアプリケーション側で処理タイミングを制御したい場合。
xpathはランダムアクセスしたい場合。
JDOMはpullとxpathの性質を併せ持つと言った感じ。
こんな感じで使い分ければいいんじゃないかい?
すべての要求を同時に満たすのは難しいだろうね。
#俺は自前のAPI持ってるから可能だけど。
>>527
空白の扱いはアプリケーション次第。確実にやりたいならまず変換先に空白を保持して
任意の空白の扱いを定義可能なスタイルシートを埋め込む。
意味が分からんなら仕様書読み直すかHTMLで吐け。
0529527
2007/06/23(土) 17:57:32すみません、良くわからないのでソースをあげます。
したいことは<br/>の場所で改行をすることです。
お願いします。
diary2000.xml
======================================================
<全体>
<年月>2007年6月24日</年月>
<日記>今日は図書館に行った。<br/>本を2冊借りた</日記>
</全体>
======================================================
template.xsl
======================================================
<xsl:template match="全体">
<table border="3">
<tr>
<td><xsl:value-of select="年月" /></td>
<td><xsl:value-of select="日記" /></td>
</tr>
</table>
</xsl:template>
======================================================
0530527
2007/06/23(土) 19:31:07ttp://oshiete1.goo.ne.jp/qa2625750.htmlを参考に。
diary2000.xml
<日記>今日は図書館に行った。<BR/>本を2冊借りた</日記>
template.xsl
<td><xsl:value-of select="日記" disable-output-escaping="yes"/></td>
としましたが・・・、<br/>と表示されます・・・。
なにが違うのでしょう・・・。
0531527
2007/06/23(土) 19:42:18530はなしです。
diary2000.xml
<日記>今日は図書館に行った。<br />本を2冊借りた</日記>
template.xsl
<td><xsl:value-of select="日記" disable-output-escaping="yes"/></td>
が正しいです。
0532527
2007/06/23(土) 19:44:54&lt;BR/&gt;は勝手に、<br/>に変換されるのですね・・・。
<日記>今日は図書館に行った&lt;BR/&gt;本を2冊借りた</日記>
が正しいです。
0533デフォルトの名無しさん
2007/06/23(土) 21:06:54``今日は図書館に行った。'' と ``本を2冊借りた'' を連結した文字列。
もっといい別解があるだろうけどとりあえず:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="全体">
<table border="3">
<tr><xsl:apply-templates /></tr>
</table>
</xsl:template>
<xsl:template match="年月">
<td><xsl:apply-templates /></td>
</xsl:template>
<xsl:template match="日記">
<td><xsl:apply-templates /></td>
</xsl:template>
<xsl:template match="br">
<br />
</xsl:template>
</xsl:stylesheet>
遠回りでも一度ちゃんとXSLT勉強したほうがいいかもしれない。
ハマリどころが結構多いから、下手すると時間めちゃくちゃ食うよ。
0534デフォルトの名無しさん
2007/06/23(土) 23:59:412つのXMLを「接ぎ木」したい場合にどうしたらいいのかよくわかりません。
B-B' と A-C-D みたいな構造のXMLがあったときに前者を後者に接ぎ木して
|-B'' |-B
A-C-D
|-B-B'
|-B''
みたいな構造のXMLを生成したいのです。あ、単に接ぎ木の操作をどうしたいいか
ということなんですが。
0535527
2007/06/24(日) 03:04:42あげたソースは短く解りやすくした例のものでした。
本物は表の連結などをしていて、形も固定のものになっています。
なのであげたものから、外れないようにしたいのです。
そうするのは難しいのでしょうか?
それと参考になるサイトがあれば教えてもらいたいです。
よろしく、おねがいします。
0536デフォルトの名無しさん
2007/06/27(水) 22:55:570537デフォルトの名無しさん
2007/06/27(水) 23:03:11変なふうに流行ってるだけだからそんなageるほどの事でもないな。
XMLは直列化形式として採用されてるだけで、直接技術的に関係はない。
そもそも、その技術がすでに枯れきっててなんの目新しいものもない。
Ajaxに限った話じゃない。
0538デフォルトの名無しさん
2007/06/27(水) 23:10:00ネットワーク越しに色々処理できるのが時代の進歩を感じさせる、すごいねえ、
みたいな感じ。
0539デフォルトの名無しさん
2007/06/29(金) 00:38:39無茶言う上司がいるのはお約束。
0540デフォルトの名無しさん
2007/06/29(金) 01:05:11といって勇者として語り次がれてみるとか。
0541デフォルトの名無しさん
2007/06/29(金) 01:55:430542デフォルトの名無しさん
2007/06/30(土) 17:34:12シェアは格が違うのでシェア以外で・・・。
0543デフォルトの名無しさん
2007/06/30(土) 17:38:03以下文章を上記翻訳サイトにて中→日にせよ
スゲиシギゝ,ザァ,ユЮ.
θイ,ゎモモモモマいデ.
びデた,ゝС,さーモモモモデゝねг
0544デフォルトの名無しさん
2007/07/17(火) 10:30:59<emp>
<name></name>
<salary></salary>
<age></age>
<emp>
※<age>要素はあったりなかったりする
↑こんな感じのがつらなってるテーブルから、
<age>要素のない<emp>だけを取り出したいんだが、どう書けばいいのか分からないorz
//employees[!age] //employees[age=null] //employees/!age ・・・orz
0545デフォルトの名無しさん
2007/07/17(火) 10:43:44//employees[not(age)]
0546デフォルトの名無しさん
2007/07/20(金) 11:11:38あるとすれば、サニタイズはどういうロジックでやればよいでしょうか?
0547デフォルトの名無しさん
2007/07/20(金) 15:54:09ていうかググればいくらでも出てくるわけだが?
インジェクション対策なんてどれも同じ、外から入力される場合は不適切な文字は受け付けないorエスケープする。
0548デフォルトの名無しさん
2007/07/20(金) 23:45:44■ このスレッドは過去ログ倉庫に格納されています