<XML総合 part="3"/>

■ このスレッドは過去ログ倉庫に格納されています
2008/10/07(火) 17:40:09
XMLなんでもスレ。

前スレ: 【XML】xmlns, XSLT, RelaxNG, JAXP, etc.【総合】
 http://pc11.2ch.net/test/read.cgi/tech/1133280488/
前々スレ: 【必須?】XML技術【使ってる?】
 http://pc8.2ch.net/test/read.cgi/tech/1090253584/
2009/01/22(木) 16:42:56
Linux使えばいい。
2009/01/22(木) 19:14:31
XMLにXSLTを参照させてXMLを表示
HTMLにXMLを参照させてHTMLを表示

この2つだとどっちが自然ですか?
両方HTMLにXMLの情報を取り込んでレイアウトできるんですが。
2009/01/22(木) 19:43:59
>>159

「自然」の定義と、

>HTMLにXMLを参照させてHTMLを表示

これでちょっとよく分からない。フレームやJavaScriptで取り込む
と言うこと?

あとはサーバを介すか全てクライアントで処理するかでも変わる。
現状WebブラウザのXSLTプロセッサの利用は現実的ではない。
161デフォルトの名無しさん
垢版 |
2009/01/22(木) 20:00:15
便乗質問しても良い?

XML+XSLT(サーバーサイド)がメインのサイトって、やっぱりテンプレートメインのサイトより少数派なんかな。
2009/01/22(木) 22:45:54
>>148
でもちょっとくらいそういう欲目はあったかもしれない。

 未知構造の文書でも動的にnamespaceの参照先URLにアクセスして
 きっちりオンザフライでバリデーションします!なんてエレガント!
 俺って天才!

みたいな。
2009/01/22(木) 22:56:19
>>162
ていうか、最初そういうものだと思ってスッゲー!って感動していた俺ガイル
2009/01/23(金) 22:25:14
RubyのREXML(3.1.7.3)使っているんですが
こんなデータがあって
data1//----
<root>
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
</root>
----//
data2//----
<root><elem>1</elem><elem>2</elem><elem>3</elem></root>
----//
こんなコードで動かすと
//----
require "rexml/document"
xmldata = REXML::Document.new(File.new("data.xml"))

for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
puts(xmldata.elements["/root"].elements[i,"elem"].index_in_parent)
end

続く
2009/01/23(金) 22:25:45
データ1での結果//----
<elem>1</elem>
2
<elem>2</elem>
4
<elem>3</elem>
6
----//
データ2での結果//----
<elem>1</elem>
1
<elem>2</elem>
2
<elem>3</elem>
3
----//
こんな結果になります。
改行を一要素として数えている?

これってバグですかね?
それとも自分がバグ?
2009/01/23(金) 22:28:26
xmldata.elements["/root"].size
でもそれぞれ7と3が返っている

XMLの仕様?パーサの仕様?バグ?
どなたかおしえてー
2009/01/23(金) 22:47:23
改行がTEXTノードとして間に挟まっていると思われ。
xmldata.elements["/root"].elements.each {|e| p e}
とかで確認してみては。
168164
垢版 |
2009/01/23(金) 22:58:32
>>167
試してみました
結果は両方同じで以下のように表示されます
----
<elem> ... </>
<elem> ... </>
<elem> ... </>
----
CR+LFをLFやCRにしてみても同じでした
なぜだー
2009/01/23(金) 23:10:26
index は要素だけじゃなくて全てのノードなのに対して
elements が要素しか返さないからじゃないのか?
170164
垢版 |
2009/01/23(金) 23:21:13
要素名指定なしで、indexのみで表示してみました
for i in 1..3
puts(xmldata.elements["/root"].elements[i])
end

結果はまた両方同じで
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>
171164
垢版 |
2009/01/23(金) 23:23:08
こんどはrootから直indexで
for i in 1..3
puts(xmldata.elements["/root"][i])
end
----
<elem>1</elem>

<elem>2</elem>
----
<elem>2</elem>
<elem>3</elem>

----
む、微妙な差が。
2009/01/23(金) 23:27:04
もちついてレスを検証したほうがいいぞ
173164
垢版 |
2009/01/23(金) 23:28:36
for i in 0..3
でやったらこんな感じ
----

<elem>1</elem>

<elem>2</elem>
----
<elem>1</elem>
<elem>2</elem>
<elem>3</elem>

----

index_in_parentはelements単位のindexじゃなくて、
parent[index]のindexを返すのか
で、これには何故か改行コードも一要素として数えられる、と

むぅ、なんか使いにくいぞ>index_in_parent
174164
垢版 |
2009/01/23(金) 23:34:06
えーと、ていうことは、今着目してる"elem"elementsが
親要素の中の何番目の"elem"elementsなのかを
直接知る方法が無いってことかい?

とりあえずもうちょっと検証してみます
ヒントくれた人ありがとー
2009/01/23(金) 23:47:35
うりゃ

for i in 1..3
puts(xmldata.elements["/root"].elements[i,"elem"])
e = xmldata.elements["/root"].elements[i,"elem"]
puts e.parent.elements.index(e) #ここ注目
end

index_in_parentはNodeクラスで定義されているので、
index_in_parentがelementだけではなくTEXTノードも
含めた全ての子Nodeの中での位置を指し示すのは
当然の仕様なんですよ。

なのでelementの並びの中での位置を知りたければ
親elementのelements配列中でのindexを求めれば
良いわけで、上記の解。
176164
垢版 |
2009/01/24(土) 00:11:29
>>175
うおー、ばっちりです
これでコーディングが進みます
本当にありがとー
2009/01/25(日) 21:22:42
>>157
最近jQueryを弄っていたので試しにXML Viewerを作ってみようと
したら、案外めんどくさかった。
Tree表示のjQuery Pluginを使えば数行でサクッと出来るかもと
思ったけど、DOMの12のNodeタイプにそれぞれ対応した処理を
書かなければならなかったのが面倒。
178デフォルトの名無しさん
垢版 |
2009/01/25(日) 21:24:10
以下のXMLをその下のXSLで変換してFireFoxで表示させようとしてます。
変換はFireFoxにやらせてます。

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="hoge.xsl" ?>
<books>
<logo>http://www2.2ch.net/2ch.html<;/logo>
</books>



<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html><body>
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="logo" />
</xsl:attribute>
</xsl:element>
</body></html>
</xsl:template>
</xsl:stylesheet>

でもなにも表示されません。これって何か間違ってますでしょうか?
179デフォルトの名無しさん
垢版 |
2009/01/25(日) 21:52:40
>>178
画像じゃないじゃん
2009/01/25(日) 22:02:41
<xsl:value-of select="books/logo" />
181デフォルトの名無しさん
垢版 |
2009/01/25(日) 22:05:21
>>179
ありがとうございます。
そうか、と思って直してIEで表示させたら表示できました。
でもFirefoxではやっぱり何も表示されませんでした。
IEとFirefoxってXSLの動きが違うのでしょうか?
182デフォルトの名無しさん
垢版 |
2009/01/25(日) 22:08:08
>>180
すいません。
180のとおりにやったらIEでもFirefoxでも同じように表示されました。
エラそうなこと言って失礼しました。
2009/01/26(月) 09:34:23
Firefox3.0.5でローカルファイルのXMLでXSLでHTML出力させていますが
一階層上のXSLファイルを相対パスで指定するとXSLが適用されず
テキストのみの表示になります。

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../style.xsl"?>


同一のファイル構成で以下のブラウザでは問題なく表示できました。
IE7/Opera9.63/Safari3.2.1/Chrome1.0.154.43/Seamonkey1.1.14/Netscape9.0.0.5

Firefox3.1beta等でも試してみたところ3.05と同じです。
ただしWebにあげるとどのバージョンのFirefoxでも問題なく表示できます。

Geckoの問題?
2009/01/26(月) 11:57:32
>>183
先日俺も同じ状況に陥った。
結局 Saxon で前処理してから表示するようにしたけど
やっぱ Firefox が原因なのか。
2009/01/30(金) 02:50:30
>>184
これはFirefoxのバグになるのかな?
仕様・・・ってわけにもいかないよね
2009/01/30(金) 07:47:26
ローカルだとなんかセキュリティがかかっちゃうとか?
2009/01/30(金) 14:28:54
ローカルだとローカルにあるファイル参照できないよ。mozilla系は。doctypeでSYSTEM指定しないとだめだったはず。
2009/02/05(木) 19:33:29
Win2008のイベントログをXMLDOMで読み込んで使いたいんですが、XPathクエリがうまく動きません。
何が悪いか見ていただけませんか。

コード(test.vbs)
--
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"

dom.load "event.xml"
strPath = "*[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)

WScript.Echo "nodes:" & colNodes.length
--

XML
--
<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>;<System><EventID>12011</EventID></System></Event>
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>;<System><EventID>12012</EventID></System></Event>
</root>
--

xmlns='http://schemas.microsoft.com/win/2004/08/events/event'がないとうまく動くのですが、xmlnsを指定している場合に
XPathクエリの指定方法が調べた限りで見つからなかったので。
2009/02/06(金) 10:29:01
>>188
XPathではプレフィックスなしの要素名は名前空間なしと決まっているんだ。

MSXMLだと名前空間コンテキストを指定する方法があったはず。それでプ
レフィックス⇒名前空間の対応を指定して、XPath中ではプレフィックス
付きで書く。
190188
垢版 |
2009/02/06(金) 11:29:45
回答ありがとうございます。

こんな感じですかね?
エラーは出ないけれどノードは認識しないので、まだ何かが足りない風味ですが。

----
Set dom = CreateObject("Microsoft.FreethreadedXMLDOM")
dom.async = False
dom.setProperty "SelectionLanguage", "XPath"
dom.setProperty "SelectionNamespaces", "xmlns:evt='http://schemas.microsoft.com/win/2004/08/events/event'"

dom.load "event.xml"
strPath = "/root/evt:Event[System/EventID=12012]"
Set colNodes = dom.documentElement.selectNodes(strPath)

WScript.Echo "nodes:" & colNodes.length
----
理解が足りてないようなので、もう少しぐぐってみます。
191188
垢版 |
2009/02/06(金) 11:34:08
連続で失礼します。

---
strPath = "/root/evt:Event[evt:System/evt:EventID=12012]"
---
でいいんですね。
うまく取得できるようになりました。

ちなみに、検索の[]内をwevtutil.exeに投げるXPathと同じにしたかったのですが、evt:Systemとかつけなくて済む方法はあったりしますか?
もしご存じであれば教えてください。
2009/02/06(金) 19:33:09
/root/evt:Event/evt:System[evt:EventID=12012]/..
193188
垢版 |
2009/02/09(月) 14:10:02
書き方が悪かったですね、失礼しました。
wevtutilと同じように、System以下をプレフィックスなしで書きたかったのですが、仕様で無理みたいなので今回はこのまま進めようと思います。
回答ありがとうございました。
2009/02/10(火) 18:00:50
Xerces C++を使っています。

とあるアプリケーション(A)のモジュール(B)が返したXMLツリーを
Aで管理しているXML文書の子要素として取り込むという処理を行いたいのですが、
BからAが管理するXML文書にアクセスできないようにしたいと思っています。

AからBにドキュメントオブジェクトを渡さないようにして、
Bの内部でXMLツリーを作成したいのですが、どのようにしたらいいでしょうか?

AとBの間の受け渡しはXMLのテキストで行います。

Bの中でドキュメントを作成して、ルート以下をメモリ上にシリアライズして
それをコピーする方法が考えられるのですが、もう少しスマートな方法はないでしょうか?
2009/03/08(日) 10:39:12
XML の内容を比較するようなツールってありますかね?

XML のデータをツリーとしてみたときに、2つのツリーで異なるノードがあったとき
それを報告してくれるツールといいますか... あと XML のフォーマットの任意性
(改行やインデントの差、順序に寄らないノードのXMLでの出現順序等)を
ちゃんと考慮して、内容としての差のみ表示してくれるとうれしいのですが。

とりあえず linux でコマンドラインから使えたりすると非常にいいです。
が、Win や Mac 等の環境もあり、とにかく差分を表示してくれるようなソフトが
あるなら見てみたいなと思うので、ご紹介いただけると助かります。
2009/03/08(日) 15:21:26
「xml diff」でググれ
197デフォルトの名無しさん
垢版 |
2009/03/11(水) 21:51:41
xmlstarletでselすると&とか数字とかに文字化けするんですが
どうしたらなおりますか?
2009/03/12(木) 08:10:48
文字化け…?
2009/03/12(木) 09:34:32
>>196
どうもありがとうございます。しかし何だか古い情報にしかヒットしない感が。
よほど需要が少ないのか、すでにソフトが枯れているのか...

とりあえず一つ一つ当たっていますが、もし個人的にお勧めなのとかあれば
教えてくださいますか?
2009/03/13(金) 15:09:08
XML Schemaについて質問なんですが。
実体参照を定義したいんですがどうやればいいかわかりません。
なお、すでにググってあります。
201200
垢版 |
2009/03/13(金) 15:36:09
さらにググったらないとか…orz
かといって列挙が必要なのでDTDは不可能。
なんかいいスキーマ言語はないもんかね。

必要条件
実体参照をサポートするもの
列挙をサポートするもの
範囲指定が容易であればなおよい

もしDTDとXML Schemaの連携ができればそれで終わりなんですがね。
2009/03/13(金) 21:33:33
>>195
例えばxmlstarletってツールだと
xmlstarlet fo file.xml
でxmlファイルを、フォーマットの任意性を排除した形に整形できる

整形した後のファイルをdiffツールで比較すれば、とにかく差分を表示できると思う


>>197
xmlstarlet sel ... した結果を xmlstarlet unesc すればいいんじゃないかな
要はselの出力が数値文字参照になって(エスケープされて)困ってるんだと思う
2009/03/14(土) 21:10:47
>>200-201
何がしたいのかよくわからんが、
実体を宣言できるのはDTDだけ。
2009/03/16(月) 02:38:08
そうかなあ
2009/03/16(月) 02:39:39
そうだよ。規格でそう決まってる
2009/03/16(月) 10:58:33
>>203
やりたいこと
wdicのV6というフォーマットをXMLに移植すること
2009/03/17(火) 03:50:15
何の説明にもなってないんだが……
208デフォルトの名無しさん
垢版 |
2009/03/26(木) 00:38:08
Microsoft.XMLDOMでProcessing Instructionの要素を取得する方法と
Processing Instructionの属性の値を読み書き方法を教えてください。

<?xml version="1.0" encoding="SHIFT_JIS"?>
<root>
  <?aaa c="0" ?>
  <eee g="0"/>
</root>

というようなXMLが有った場合、
eee要素の取得は XmlDom.documentElement.selectSingleNode("eee")
属性gの値の書き換えは、.Attributes.getNamedItem("g").text = "1"
で出来ますが、これと同じようにaaaのProcessing Instruction要素、
つまり<?aaa c="0" ?>を取得し、属性cの値を読み書きしたいのです。

この場合なら要素の取得は XmlDom.documentElement.childNodes(0)
で出来ますが、インデックス指定ではなaaaの名前指定で取得する方法をお願いします。

Microsoft.XMLDOMのバージョンは6.0です。
2009/03/26(木) 08:46:34
>>208
できないんじゃないかな。PIは要素じゃないし、普通は使わないし。

2009/03/26(木) 08:50:54
と、思ったけど、
selectSingleNode("processing-instruction('aaa')")
でできるような気がする。

PIの内容は単なる文字列で、属性という概念はないので、「c="0" 」は
自分でパーズするしかないと思う。
2009/04/01(水) 07:34:20
ものすごく初歩的な質問だったらすみません。
xmlのツリー表示って"任意のツリーだけ最初から閉じた状態で"表示することってできるんですか?
2009/04/01(水) 08:04:06
初歩的というか、意味不明です。

XMLを解釈して表示するのは、個々の処理系の責任なので、XMLとしてできるかできないかという話ではありません。
そういうソフトウェアを作りたいという話なら、答えはyesです。
2009/04/01(水) 18:03:59
xml単体ではできないということですね。
普段FireFoxでxmlファイルを開いて確認しているのですが、最初から全部のツリーが開いているのが個人的に気になったもので質問させていただきました。
答えてくださってありがとうございます。
2009/04/01(水) 18:45:26
>>213
それはFireFoxがそういう風に作られていると言うだけのことですから、XMLがどうかと言う話ではありませんね。
因みに、私の手元にあるXMLビューワは始めから全部閉じた状態で表示されます。
215デフォルトの名無しさん
垢版 |
2009/04/01(水) 20:54:37
>>214
件の質問者じゃないが、そのビューアがノード名だけのツリー表示ではなく
Webブラウザのような一覧性のある表示が出来るならソフト名教えて
216デフォルトの名無しさん
垢版 |
2009/04/01(水) 21:22:29
>>213
納得するのはいいが、今日が何の日か知ってるのか?
2009/04/01(水) 21:52:05
一部のバカが、普段より更にバカなこと企てるが
一般人は何事もなく過ごす日
2009/04/02(木) 22:55:58
すみませんが、質問です。

たのしいXML: XSLT基礎編: xsl:copy-of
http://www6.airnet.ne.jp/manyo/xml/xslt/step30.html
に載っている

http://www6.airnet.ne.jp/manyo/xml/xslt/sample30/flights.xml
ですが、IE7だときれいにテーブルとして表示されますが、それ以外のブラウザ
(Firefox 3.02, Opera 9.64, Safari 3.1.2)だと、テーブルとして表示されま
せん。

これって、IEとその他、どちらが正しいのでしょうか?

ちなみにFirefoxだけエラーになるので、ローカルに保存して試しました。
2009/04/02(木) 23:19:14
>>218
xsl:output が指定されていないから table 要素をどう表示するかは処理系次第なんじゃね?
2009/04/02(木) 23:31:56
>>219
なるほど!
xsl:stylesheet 要素の次に、

<xsl:output method="html" encoding="Shift_JIS"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />

これを挿入すると、他のブラウザでも見事にテーブルになりました。
ありがとうございました。
2009/04/03(金) 11:53:02
ちょっとしつもん。
空白だけのドキュメントは、XMLデータと
してvalidでしたっけ?
2009/04/03(金) 12:21:42
>>221
XMLドキュメントとしてはinvalid。ルート要素が必須。
External parsed entityとしては、OK。
223221
垢版 |
2009/04/03(金) 19:58:27
>>222
ありがと。
やっぱり要素はなんか必須なのか。

>External parsed entity
初耳。
調べたら「外部解析実体」とかいうやつね。
well-formedからルートをなくした感じ?
いつもスキーマなしのstandaloneしか
使わないから知らなかったよ。
2009/04/07(火) 13:26:56
ちょw
2009/04/07(火) 21:40:14
XPATH で名前空間によらずとにかく a というローカル名の要素に一致させたいんですけど、
名前空間のワイルドカードみたいな指定はできます?
2009/04/08(水) 13:22:38
>>225
*[local-name()='a']
2009/04/10(金) 01:59:17
お聞きしたいんですけど、どこかに、ユーザスタイルシートとしてXSLTを適用
できるWEBブラウザはありませんか?Operaは駄目でした。あとIEは使いづらい
ので避けたいです。

Amazon APIを使った開発をするとき、レスポンスをブラウザで全部表示すると、
量が多すぎて困るんで、XSLTを適用して見られたら便利かなと思うんですよ。

それとも、他にもっと便利なXMLブラウザはありますか?
2009/04/11(土) 00:07:53
必要な情報だけ抜き出して表示するんじゃダメなん?
2009/04/12(日) 13:36:26
>>227
Firefox
2009/04/12(日) 16:22:46
Amayaはmathだけだっけ?
2009/04/13(月) 01:12:03
>>229
> Firefox

すみません、どうやって設定するのでしょうか?
↓の記事によると、Firefoxは userContent.css というファイルをプロファイ
ルディレクトリに置くことでユーザスタイルシートを指定するようです。

ユーザスタイルシートによるカスタマイズ(1) - えむもじら
http://level.s69.xrea.com/mozilla/index.cgi?id=20070114_sdfx2_2

このファイル名からして、XSLTは指定できないように思えます。実際、
userContent.cssの内容をXSLTにしてみましたが、動作しませんでした。
2009/04/13(月) 09:05:49
そういうアドオンを書けってはなしでしょw
2009/04/26(日) 09:41:46
foo要素かbar要素を選択するXPathってどう書けばいいんでしょうか。
イメージ的には //foo or //barみたいな感じです。
2009/04/26(日) 09:45:58
ああ、|が使えるんだ。
どうもスレ汚し済みませんでした。
235デフォルトの名無しさん
垢版 |
2009/04/27(月) 21:02:32
文法で質問です。解析しようとするXML中に
[adlcp:datafrom]abc[/adlcp:datafrom]
[adlcp:mast]80[/adlcp:mast]
という「:」で区切られたタグがありました。この要素中のabcや80といった内容
を抽出したく思っています。
この場合、[A:B]のAとBはそれぞれ何という文法名称を持っているのしょうか?
(Aは単に要素?)

※書き込みCGIの都合上、タグ記号を<>→[ ]にしています。

2009/04/27(月) 21:04:48
名前空間
2009/04/27(月) 21:07:51
A -> 接頭辞
B -> 局所名
2009/04/27(月) 21:32:06
>>236-237
どれが(どっちが)本当なんですかあ?
2391/2
垢版 |
2009/04/27(月) 21:52:58
以下の様なXML(ちなみにjava.util.Propertiesが吐く出力です)
================検証対象================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="fooKey">fooValue</entry>
<entry key="barKey">barValue</entry>
</properties>
========================================

に対応するXML Schemaを記述したいのですが、以下ではエラーになりました
曰く「entryは子どもに要素は持てないよ(※1)」とのことなのですが、
どこが誤っていますでしょうか・・・
(改行規制が入ったため、スキーマだけ次に記述させていただきます)

(※1)パーザーからのエラー原文
[Error] :5:21: cvc-complex-type.2.4.d: Invalid content was found starting with element 'entry'. No child element is expected at this point.
240239(2/2)
垢版 |
2009/04/27(月) 21:54:12
=================定義=================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="entry">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="key" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
======================================
2009/04/27(月) 21:54:39
>>238

<A:B />

A:B -- qualified name
A -- namespace prefix
B -- local name
2009/04/27(月) 21:56:39
>>241
てんきゅう。
2009/04/27(月) 22:01:12
>>239-240
エラーメッセージを読み間違えてる。
「要素'entry'から始まる不正な内容を発見しました。ここには子要素は認められません」

<sequence>は指定した要素を指定した個数だけ指定した順番で要求する定義。
2009/04/28(火) 10:54:29
>>243
ありがとうございます。sequence のままの場合、
データ側を試しに一つのentry要素1つにしてみると成功しました。

何度も質問してすみませんが、「entry要素が任意個並ぶ」の場合は
どうなるのでしょうか。any と choice は×でした。
2009/04/28(火) 12:31:17
>>244
っmaxOccurs, minOccurs
2009/04/28(火) 14:51:09
>>245
ありがとうございます。min=0, max=unboundedで出来ました。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="entry" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="key" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

そもそも>>239のXMLに対して妥当な書き方なのか分かりませんが…
247デフォルトの名無しさん
垢版 |
2009/04/30(木) 15:33:43
XSLTでhtml出力したいと思っているのですが、
MSXSL6でhtml出力されると
<!--hogehoge-->
<?php include("./include/index.php"); ?>
が出力されません。
コメントタグなどテキスト出力できる方法はありませんでしょうか?
よろしくお願いします。

hoge.xsl
<?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" omit-xml-declaration="yes" indent="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
media-type="text/html" />
<xsl:template match="/"><html>
<head>
<link rel="stylesheet" href="../../css/import.css"
media="print,screen" charset="shift_jis" type="text/css" />
</head>
<body>
<!--hogehoge start-->
<div id="hogehoge">
<?php include("./include/index.php"); ?>
</div>
<!--hogehoge end-->
</body>
</html>
</xsl:template>
</xsl:stylesheet>
2009/04/30(木) 16:41:57
<!--hogehoge-->は
<xsl:comment>
 <xsl:text>hogehoge</xsl:text>
</xsl:comment>

<?php ?> のほうはわかんね。
2009/05/01(金) 10:04:01
VB.net2005で要素探して文字列置換する関数教えて
2009/05/01(金) 22:40:36
言語に由来するAPIは言語のスレじゃないの?
2009/05/03(日) 16:25:08
>>247
> <?php include("./include/index.php"); ?>
処理命令ならxsl:processing-instructionを使えばいいんでないかな。

XSLT 1.0仕様書だとここらへん。
ttp://www.w3.org/TR/xslt#section-Creating-Processing-Instructions
252デフォルトの名無しさん
垢版 |
2009/05/03(日) 21:50:08
>>248、251 ありがとうございました。
<xsl:processing-instruction name="php">
include("../../../include/business/index.php");
</xsl:processing-instruction>
でOKでした
253デフォルトの名無しさん
垢版 |
2009/05/26(火) 06:21:49
Java(6)でXHTML文書をorg.w3c.dom.Documentに読み込んだあと、そのまま
javax.xml.transform.Transformerで出力すると、
出力結果の文書に、元の文書にはなかった属性(たとえば<a>に shape="rect")が
追加されてしまいます。
これを抑止する方法はないでしょうか?
これらの属性値は暗黙のデフォルト値のようで、
出力前にElement#removeAttributeNode()で削除することができません。
(削除してもデフォルト値で復活してしまう)
Transformerのパラメータ等で属性のデフォルト値出力を抑止できると
大変たすかるのですが、対処法をご存じないでしょうか?
2009/05/26(火) 22:47:05
aじゃなくてareaじゃないの?
2009/05/27(水) 07:05:19
>254
ttp://w3g.jp/xhtml/dic/a#shape

あと、ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdに

<!ELEMENT a %a.content;>
<!ATTLIST a
%attrs;
%focus;
charset %Charset; #IMPLIED
type %ContentType; #IMPLIED
name NMTOKEN #IMPLIED
href %URI; #IMPLIED
hreflang %LanguageCode; #IMPLIED
rel %LinkTypes; #IMPLIED
rev %LinkTypes; #IMPLIED
shape %Shape; "rect"
coords %Coords; #IMPLIED
target %FrameTarget; #IMPLIED
>

とあります。
256デフォルトの名無しさん
垢版 |
2009/05/27(水) 20:08:34
XMLとDTDをテキストファイルに書いて
データベースを作ったんだけど、
それらのファイルを開いて検索したり手軽にするには
どうしたらいいですか?
2009/05/27(水) 20:38:44
データベースというものがあってだな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況