【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】
まもなくOSもXMLで書ける時代が来るのです。
これからは音楽も動画もXMLで落ちてくるよ。
わすれちゃいけないオントロジ
945 :
デフォルトの名無しさん:2008/07/15(火) 14:48:42
長時間走らせるとstackoverflowがでる…
>>945 メモリか割り当てを増やすんだ。
XMLの道は富豪の道。
xmlでjavaのdomと一緒に使われてるフリーソフトとかゲームないかな?
日本語でおk
>>947 XMLでゲームシナリオを定義するフレームワークがあったようななかったような。
あれは条件に合うんじゃないか?
msofficeのxmlまじで嫌い
Apache cocoonをスタンドアロンアプリケーションに組み込んで使いたいと
思っているんだけど、どうやればいいのか、とっかかりのところで躓いています。
どこかに参考になるドキュメントがないでしょうか?
xpathですべてのElementに対して検索をしたいのですが、以下を指定するとエラーになります。
//* = ['21]'
//[* = '21']
//[. = '21']
そもそもそんなことはできないのでしょうか?
javaなんですが、読み込んだxmlをコピーするのにいい方法ないでしょうか
DocumentのrootエレメントをcloneNodeして新しいDocumentにappendChildしたら、
org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR
で怒られるんですよ。
>>952 //*[text()='21']
のこと?
>>953 異なるドキュメントのノードは混ぜられない。
Document.importNode() を見るんだ。
RELAX NGは?
XML の Schema で <foo a="..." /> または <foo b="..." /> のみを既定できるように
したいのですがどう書けば良いのでしょうか? 属性に対する「いずれか必須」のような、
<xsd:choice> の属性指定版のようなものです。
959 :
デフォルトの名無しさん:2008/08/19(火) 01:16:42
初心者的な質問かもしれませんが、分からないので質問させてください
<sc>
<mem>あ</mem>
</sc>
この3行のxmlで無効な文字が見つかりました 〜〜ライン 2、位置 6
とでるのですが、
私が学んだ中で日本語文字が引っかかるというのは記憶がありません?
どうすればいいのでしょうか?
>>959 そのXMLファイルはどうやって作った?
もしUTF-16やUTF-8になってないなら、<?xml encoding="..."?> が必要かも。
>>960 すみません、その通りでした。
ありがとうございます
>>958 XML Schemaではできないんだっけ
次のようなデータがあって…
<?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>
>>963 <xsl:variable name="customer" select="."/><xsl:value-of select="/main/offices/office[num=$customer/off_id]/name"/>
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つ)
をあらわす方法ないっすか?
967 :
1週間だけC++:2008/09/09(火) 23:08:12
がは<がは>
がは がはがは
>>966 //div[following-sibling::div[position()=1][@id="hoge"]]/following-sibling::div[position()<=2]
とか。
969 :
966:2008/09/11(木) 21:45:25
>>968 ありがとう
一応同じ部分の繰り返しはないけど
けっこうトリッキーだなあ
XSLTから使う場合とか、変数を設定できる環境だったら、そうするのが一番だろうねえ。
今日xmlとxslとcss習い始めたポンコツですが、よくわからないので教えてください。
xhtml1.0に従って書かれたhtml拡張子のものがあってxml拡張子に変えるので、変えたところ
cssが適用できない?のでxslでxmlの中身を全文コピー?しようと思うのですが
<xsl:copy>を使ってがんばってみましたが画像のようになってしまいます。
xslどんな感じに書けばいいですかね?
ttp://www2.imgup.org/iup693104.jpg
早朝から乙。
どんなxmlとxsltを書いてるのか見てみないと答えようがないぜよ。
現象が再現するミニマムなコードを出せないもんかね。
…なんか属性だけコピーされてないようにも見えるが。
ブラウザのデフォルト CSS も読み込んでみたら?
<?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>
全文そのままコピーしたいんだったら<xsl:copy-of>の方がよくね?
>>976 早レスthanks
ちょっといじってくるよ!
てか今のままでも全文コピーできてるんですかね?
古い処理系との互換性のための宣言に過ぎないから。
命令の始まりである&と<とだけに細工しておけばそれで済む。
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しかはけないからだと思われますか?
エスパー質問ですが、よろしくです
>>981 どういう理由でShift_JISだと思ったの?
javaVMが実行時に吐く文字コードはVMオプションで強制できるぞ。
>>982 使用しているXML,・XSL書類の文字コード、タグの指定がすべてUTF-8なのに
Shift_JISで生成される理由がそれしか思いつかなくて。。。
>>984 だからどういう理由で、その文書がShift_JISだと思ったの?
こういうキモイ切り替えしして来る奴って実社会でも居るよなぁ。
大抵アラフォー未婚 or バツイチ ハゲ だが。
>>981 出力結果のどこに Shift_JIS 文字が入ってんだよ。
>>986 生成されるXMLファイルをエディタで開くとsjisで認識されます。
変換前のファイルはutf8で認識されるのですが。。。
出力結果のどこに Shift_JIS 文字が入ってんだよ。
>>988 XSLでの指定がアルファベットだったので、日本語も入れて実験したところ、
確かにUTF-8Nで保存されてました。失礼しました。
# xyzzyは自動認識に失敗してShit-JISで表示しようとして文字化けしてまし
たが、メモ帳などではUTF-8で見れました
次スレ要る?
オレは規制で立てられないけども。