【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】

このエントリーをはてなブックマークに追加
941デフォルトの名無しさん:2008/07/15(火) 01:23:47
まもなくOSもXMLで書ける時代が来るのです。
942デフォルトの名無しさん:2008/07/15(火) 01:24:33
これからは音楽も動画もXMLで落ちてくるよ。
943デフォルトの名無しさん:2008/07/15(火) 01:26:14
わすれちゃいけないオントロジ
944デフォルトの名無しさん:2008/07/15(火) 01:27:05
>>940
それってただのXSLTじゃね?
945デフォルトの名無しさん:2008/07/15(火) 14:48:42
長時間走らせるとstackoverflowがでる…
946デフォルトの名無しさん:2008/07/16(水) 11:03:33
>>945
メモリか割り当てを増やすんだ。
XMLの道は富豪の道。
947デフォルトの名無しさん:2008/07/23(水) 20:18:43
xmlでjavaのdomと一緒に使われてるフリーソフトとかゲームないかな?
948デフォルトの名無しさん:2008/07/23(水) 22:51:29
日本語でおk
949デフォルトの名無しさん:2008/07/24(木) 01:31:26
>>947
XMLでゲームシナリオを定義するフレームワークがあったようななかったような。
あれは条件に合うんじゃないか?
950デフォルトの名無しさん:2008/07/24(木) 04:18:10
msofficeのxmlまじで嫌い
951デフォルトの名無しさん:2008/08/07(木) 23:26:44
Apache cocoonをスタンドアロンアプリケーションに組み込んで使いたいと
思っているんだけど、どうやればいいのか、とっかかりのところで躓いています。
どこかに参考になるドキュメントがないでしょうか?
952デフォルトの名無しさん:2008/08/08(金) 15:44:13
xpathですべてのElementに対して検索をしたいのですが、以下を指定するとエラーになります。
//* = ['21]'
//[* = '21']
//[. = '21']
そもそもそんなことはできないのでしょうか?
953デフォルトの名無しさん:2008/08/08(金) 17:39:56
javaなんですが、読み込んだxmlをコピーするのにいい方法ないでしょうか
DocumentのrootエレメントをcloneNodeして新しいDocumentにappendChildしたら、
org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR
で怒られるんですよ。
954デフォルトの名無しさん:2008/08/08(金) 18:58:59
>>952
//*[text()='21']
のこと?

>>953
異なるドキュメントのノードは混ぜられない。
Document.importNode() を見るんだ。

955デフォルトの名無しさん:2008/08/10(日) 09:02:39
XInclude の機能を使うスキーマを書こうと思っています。通常の要素のように特定の位置での
出現を許可するのはわかるんですが、ドキュメント内の任意の位置での出現を許すスキーマって
書く方法はありますか? それとも出現の可能性のあるところに片っ端から書かなきゃだめですか?

<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://myshema/foo"
xmlns:xi="http://www.w3.org/2001/XInclude"
targetNamespace="http://myshema/foo"
>
<xsd:import namespace="http://www.w3.org/2001/XInclude" schemaLocation="xinclude.xsd" />
???
</xsd:schema>
956デフォルトの名無しさん:2008/08/10(日) 14:08:42
RELAX NGは?
957デフォルトの名無しさん:2008/08/12(火) 17:07:01
XML の Schema で <foo a="..." /> または <foo b="..." /> のみを既定できるように
したいのですがどう書けば良いのでしょうか? 属性に対する「いずれか必須」のような、
<xsd:choice> の属性指定版のようなものです。
958デフォルトの名無しさん:2008/08/17(日) 21:04:00
>>957
RELAX NG
959デフォルトの名無しさん:2008/08/19(火) 01:16:42
初心者的な質問かもしれませんが、分からないので質問させてください
<sc>
<mem>あ</mem>
</sc>
この3行のxmlで無効な文字が見つかりました 〜〜ライン 2、位置 6
とでるのですが、
私が学んだ中で日本語文字が引っかかるというのは記憶がありません?
どうすればいいのでしょうか?
960デフォルトの名無しさん:2008/08/19(火) 01:19:44
>>959
そのXMLファイルはどうやって作った?
もしUTF-16やUTF-8になってないなら、<?xml encoding="..."?> が必要かも。
961デフォルトの名無しさん:2008/08/19(火) 01:28:00
>>960
すみません、その通りでした。
ありがとうございます
962デフォルトの名無しさん:2008/08/19(火) 23:55:36
>>958
XML Schemaではできないんだっけ
963デフォルトの名無しさん:2008/08/30(土) 18:20:37
次のようなデータがあって…
<?xml version="1.0" encoding="shift_jis"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<main>
 <customers>
  <customer><name>yamada</name><off_id>2</off_id></customer>
  <customer><name>suzuki</name><off_id>2</off_id></customer>
  <customer><name>sato</name><off_id>1</off_id></customer>
 </customers>
 <offices>
  <office><num>1</num><name>dev</name></office>
  <office><num>2</num><name>eng</name></office>
  </offices>
</main>
次のように表示したいのですが…
yamada : eng
suzuki : eng
sato : dev
どう書いたらよいのか分からんす。教えてくらさい。
<?xml version="1.0" encoding="shift_jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> <body><xsl:apply-templates/></body> </html>
</xsl:template>
<xsl:template match="main"><xsl:apply-templates/></xsl:template>
<xsl:template match="customers"><xsl:apply-templates/></xsl:template>
<xsl:template match="customer">
<xsl:value-of select="name"/> : ???<br/>
</xsl:template>
<xsl:template match="offices"></xsl:template>
</xsl:stylesheet>
964デフォルトの名無しさん:2008/08/30(土) 18:39:03
>>963
<xsl:variable name="customer" select="."/><xsl:value-of select="/main/offices/office[num=$customer/off_id]/name"/>
965デフォルトの名無しさん:2008/08/30(土) 22:40:29
>>964
thx
966デフォルトの名無しさん:2008/09/09(火) 22:59:31
XPathってここでいいんかな

//div[@id="hoge"]

でdivを取得ついでに
そのうしろにあるdivひとつだけも取得したいとき

//div[@id="hoge"] | //div[@id="hoge"]/following-sibling::div[position()=1]

ってやってるんだけど
どうにも非効率でダサイようなきがする。

実際(//div[@id="hoge"])の部分がもっと複雑だったりすると同じ部分をこぴぺするのがだるいしあとで変わったとき間違えそうでいやだ。

もうちょっとスマートに (エレメントX + そのXの前後のエレメント1つ)
をあらわす方法ないっすか?
9671週間だけC++:2008/09/09(火) 23:08:12
がは<がは>
  がは がはがは
968デフォルトの名無しさん:2008/09/10(水) 04:48:59
>>966
//div[following-sibling::div[position()=1][@id="hoge"]]/following-sibling::div[position()<=2]
とか。
969966:2008/09/11(木) 21:45:25
>>968
ありがとう

一応同じ部分の繰り返しはないけど
けっこうトリッキーだなあ
970デフォルトの名無しさん:2008/09/11(木) 21:46:47
XSLTから使う場合とか、変数を設定できる環境だったら、そうするのが一番だろうねえ。
971デフォルトの名無しさん:2008/09/21(日) 05:21:44
今日xmlとxslとcss習い始めたポンコツですが、よくわからないので教えてください。

xhtml1.0に従って書かれたhtml拡張子のものがあってxml拡張子に変えるので、変えたところ
cssが適用できない?のでxslでxmlの中身を全文コピー?しようと思うのですが
<xsl:copy>を使ってがんばってみましたが画像のようになってしまいます。

xslどんな感じに書けばいいですかね?
ttp://www2.imgup.org/iup693104.jpg

972デフォルトの名無しさん:2008/09/21(日) 09:30:17
早朝から乙。

どんなxmlとxsltを書いてるのか見てみないと答えようがないぜよ。
現象が再現するミニマムなコードを出せないもんかね。

…なんか属性だけコピーされてないようにも見えるが。
973デフォルトの名無しさん:2008/09/21(日) 13:23:13
ブラウザのデフォルト CSS も読み込んでみたら?
974デフォルトの名無しさん:2008/09/21(日) 18:02:08
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<link rel="stylesheet" type="text/css" href="sample2.css" />
<xsl:apply-templates />
</html>
</xsl:template>
<!-- もとのxmlテキストの内容をそのままコピーします -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

975デフォルトの名無しさん:2008/09/21(日) 18:05:53
>>972
>>974
xsltはこんな感じなんだけど、
訂正
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">じゃなくて
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">だわ

これだと全文そのままhtmlに変換できてないかな?
>>973
ちょっとデフォルトのCSSがわからんで、勉強してくるわ
976デフォルトの名無しさん:2008/09/21(日) 18:22:40
全文そのままコピーしたいんだったら<xsl:copy-of>の方がよくね?
977デフォルトの名無しさん:2008/09/21(日) 18:27:24
>>976
早レスthanks
ちょっといじってくるよ!
978デフォルトの名無しさん:2008/09/21(日) 21:08:42
てか今のままでも全文コピーできてるんですかね?
979デフォルトの名無しさん:2008/09/25(木) 00:36:47
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou05/learning-xml05.html
ここ読んでてよくわからなかったんだけど
&lt;の定義は
<!ENTITY lt "&#38;#60;">
だけど
&gt;の定義は
<!ENTITY gt "&#38;#62;">
じゃなくて
<!ENTITY gt "&#62;">
なのはなんで?
980デフォルトの名無しさん:2008/09/25(木) 00:58:47
古い処理系との互換性のための宣言に過ぎないから。
命令の始まりである&と<とだけに細工しておけばそれで済む。
981デフォルトの名無しさん:2008/09/29(月) 19:57:43
XMLをXSLを使って変換する練習をしているんですが、あるXML文書
を↓のXSLスタイルシートを使ってJAVAのプログラムで変換しようとしています。

<?xml version="1.0" encoding="utf-8" ?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8"/>

<!-- 文書 -->
<xsl:template match="/">
<root>
</root>
</xsl:template>

</xsl:stylesheet>


出来る文書の中身がが

<?xml version="1.0" encoding="utf-8"?><root/>

なんですが、問題は文字コードがShift_JISなのです。
これは使っているJAVAのプログラムがShift_JISしかはけないからだと思われますか?
エスパー質問ですが、よろしくです
982デフォルトの名無しさん:2008/09/29(月) 21:00:54
>>981
どういう理由でShift_JISだと思ったの?
983デフォルトの名無しさん:2008/09/29(月) 21:38:12
javaVMが実行時に吐く文字コードはVMオプションで強制できるぞ。
984デフォルトの名無しさん:2008/09/29(月) 22:09:32
>>982
使用しているXML,・XSL書類の文字コード、タグの指定がすべてUTF-8なのに
Shift_JISで生成される理由がそれしか思いつかなくて。。。
985デフォルトの名無しさん:2008/09/29(月) 22:22:44
>>984
だからどういう理由で、その文書がShift_JISだと思ったの?
986デフォルトの名無しさん:2008/09/30(火) 08:13:50
こういうキモイ切り替えしして来る奴って実社会でも居るよなぁ。
大抵アラフォー未婚 or バツイチ ハゲ だが。

>>981
出力結果のどこに Shift_JIS 文字が入ってんだよ。
987デフォルトの名無しさん:2008/09/30(火) 10:49:13
>>986
生成されるXMLファイルをエディタで開くとsjisで認識されます。
変換前のファイルはutf8で認識されるのですが。。。
988デフォルトの名無しさん:2008/09/30(火) 12:36:24
出力結果のどこに Shift_JIS 文字が入ってんだよ。
989デフォルトの名無しさん:2008/09/30(火) 14:21:43
>>988
XSLでの指定がアルファベットだったので、日本語も入れて実験したところ、
確かにUTF-8Nで保存されてました。失礼しました。

# xyzzyは自動認識に失敗してShit-JISで表示しようとして文字化けしてまし
たが、メモ帳などではUTF-8で見れました
990デフォルトの名無しさん
次スレ要る?
オレは規制で立てられないけども。