【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/
0666デフォルトの名無しさん
2007/11/13(火) 20:29:25ちょっと余計なものが付くがこれで良ければ。
<xsd:element name="url" type="urlType" />
<xsd:complexType name="urlType" abstract="true" />
<xsd:complexType name="httpType">
<xsd:complexContent>
<xsd:extension base="urlType">
<xsd:sequence>
<xsd:element ref="host" />
<xsd:element ref="port" />
<xsd:element ref="path" />
</xsd:sequence>
<xsd:attribute name="scheme" type="schemeType" use="required" fixed="http" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexTpe name="mailtoType">(略)</xsd:complexType>
<url scheme="http" xsi:type="httpType">
<host>www.foo.com</host>
<port>80</port>
<path>/hoge/unko.txt</path>
</url>
<url scheme="mailto" xsi:type="mailtoType">(略)</url>
xsi:typeが省略されるとurlTypeはabstractなのでエラーになる。
0667デフォルトの名無しさん
2007/11/13(火) 20:42:36なるほど、ベースを abstract で宣言しておいて、拡張のほうで "http", "mailto" を
fixed 指定にしておけば属性値ごとに中の定義が変更できるような使い方になりますね。
帰って試してみます。schemaType は string じゃダメなんでしょうか?
0668デフォルトの名無しさん
2007/11/13(火) 21:12:20schemeTypeはenumerationにしてたんだが行数の都合で省略したのを忘れてた。
もちろんstringでいいと思う。
0669デフォルトの名無しさん
2007/11/14(水) 04:02:31練習問題での自分の回答と巻末の模範解答が違うことがあるのですが、同じことができる
スタイルシートを作れていれば「正解」としていいのでしょうか?
たとえば、
<xsl:template match="car">
<car>
<xsl:attribute name="file">
<xsl:value-of select="img/@file"/>
</xsl:attribute>
<xsl:apply-templates select="name"/>
<xsl:apply-templates select="price"/>
</car>
</xsl:template>
とするべき(?)ところで、<car>のかわりに、<xsl:copy>と書いてしまったのですが、
XMLの理解の上では問題ありませんよね?
他にも
<xsl: copy-of select="."/>と書く方法と、
<要素>
<xsl:value-of select="."/>
</要素>
と丁寧に書く方法がありますが、XMLの勉強では好きな方選べばよいのかな・・・
0670デフォルトの名無しさん
2007/11/14(水) 07:14:27与えられた入力と求める出力(いずれもXMLか)を貼らないと
XSLT知ってる人でも答えにくいと思うぞ。
0671デフォルトの名無しさん
2007/11/14(水) 16:45:43悲しいけどこれってマジレスなのよね。
0673デフォルトの名無しさん
2007/12/01(土) 18:03:12ふーばー
おっぱっぴー</foo:bar>
みたいなのを、
<xhtml:div>ほげほげほげ<br/>
ふーばー<br/>
おっぱっぴー<xhtml:div>
みたいにしたいんだけど、どう書けばいいんでしょうか。
0674デフォルトの名無しさん
2007/12/01(土) 18:04:550675デフォルトの名無しさん
2007/12/01(土) 18:59:26とはいえ、データ構造から見直したほうがいいとおもうよ
0676デフォルトの名無しさん
2007/12/01(土) 19:11:18やってやれないことはないがあまりオススメしない。
HTMLにするならpreじゃいけないのか?
<xsl:param name="line.delimiter" xml:space="preserve">
</xsl:param>
<xsl:template match="foo:bar">
<xhtml:div>
<xsl:call-template name="substitute">
<xsl:with-param name="str" select="text()" />
</xsl:call-template>
</xhtml:div>
</xsl:template>
<xsl:template name="substitute">
<xsl:param name="str" />
<xsl:choose>
<xsl:when test="contains($str, $line.delimiter)">
<xsl:value-of select="substring-before($str, $line.delimiter)" />
<xsl:text disable-output-escaping="yes"><br /></xsl:text>
<xsl:value-of select="$line.delimiter" />
<xsl:call-template name="substitute">
<xsl:with-param name="str" select="substring-after($str, $line.delimiter)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
0677デフォルトの名無しさん
2007/12/04(火) 00:05:29<a>
<elem-a/><elam-b/>
</a>
<b>
<elem-1/><elem-2/>
</b>
を
<c>
<elem-a/><elam-b/>
<elem-1/><elem-2/>
</c>
に書き換えたいのですが、
<template match="a|b">
<c>
<apply-template select="*"/>
</c>
</template>
とやったら(記憶で書いてるので細かい点、ちょっと嘘かも)
<c>
<elem-a/><elam-b/>
</c>
<c>
<elem-1/><elam-2/>
</c>
となってしまいました。どのように書けばよいのでしょう?
0678デフォルトの名無しさん
2007/12/04(火) 23:34:32outlineがexpansionStateに含まれているかどうかってどうすれば知ることができるんだろうか
0679デフォルトの名無しさん
2007/12/04(火) 23:42:40<a>と<b>の親にテンプレート適用して、
<a>と<b>の子とってくればいいんじゃなかろうか
0680デフォルトの名無しさん
2007/12/05(水) 00:35:14なるほどそう書くのですか。それで出来そうですね。
0681デフォルトの名無しさん
2007/12/05(水) 00:36:26outlineの親要素のローカル名がexpansionStateかどうかを調べればよいのでは。
もしexpansionState要素の子要素であるoutlineに何かしたいなら
マッチングパターンを変えてテンプレートを作成すればいい。
0682デフォルトの名無しさん
2007/12/07(金) 19:54:39xmlNodePtrからいちいちxmlDocPtr生成するの面倒い…
0683デフォルトの名無しさん
2007/12/10(月) 02:52:30<hoge>1 2.0 3.0</hoge>
のような。
xsd:pattern で正規表現を指定する他に方法ありますか?
0684デフォルトの名無しさん
2007/12/21(金) 12:52:44んーそもそも、XMLというかデータ構造的に、そうした型の設計は
好ましくない気がするんだけど、どうしてもそれじゃなきゃだめなのけ?
0685デフォルトの名無しさん
2007/12/21(金) 20:31:19XML 1.0 で定義されている文字を外れるコードが含まれると(例えば 0x1f 以下の
制御文字とか)エラーになってしまうようで、困っています。
この手の問題ってどうしたらいいと思いますか? とりあえず自前の文字参照みたいのを
定義して、かませようかと思っていますが...
0686デフォルトの名無しさん
2007/12/21(金) 20:41:320687orz
2007/12/21(金) 20:41:590688デフォルトの名無しさん
2007/12/21(金) 20:56:29年の瀬も近くてまったりしようと思ってたのに、いまさら自前のコードを起こして
テストするのが面倒でw XML の範疇でなんとかならないかと思って。
>>687
それは「文字」参照なんで、XML の範疇で文字として扱われていないコードに対しては
駄目みたいです、というのが自分の理解。ちなみに CDATA も同様。
0689orz
2007/12/21(金) 21:00:170690デフォルトの名無しさん
2007/12/21(金) 21:01:12巷の XML ライブラリってまだ 1.1 をほとんどサポートしてないですよね?
0691デフォルトの名無しさん
2007/12/21(金) 21:04:56はい、それもアリなんですが、可読性がなくなるのがちょっと不便というか...
その XML を生でみたいときもあるので。
0692デフォルトの名無しさん
2007/12/21(金) 21:08:12とか適当にでっちあげればいいじゃん。
0693デフォルトの名無しさん
2007/12/21(金) 21:19:41ちなみに 「ダメです」 ってのは何かアプリ的な不具合なのか、それとも潔癖原理主義的なものなのか。
0694デフォルトの名無しさん
2007/12/21(金) 21:21:13すみません、それってどうやって使うんですか?
例えば
<text>制御文字が入ったテキスト 0x1f</text> (0x1f は実際にはバイトデータ(で、不正))
を
<text>制御文字が入ったテキスト <char codepoint="0x1f"/></text>
みたいな?
で、このテキストを取り出すときに何らかの処理で元のバイトデータに戻す?
ちなみに今は XPath でこの要素を取り出したりしているんですが... 変更は簡単かな?
0695デフォルトの名無しさん
2007/12/21(金) 21:40:18>quoted-printable か URL フォームエンコーディングとかでも。
日本語が結構入るんで、ちょっと厳しいですかね。
>ちなみに 「ダメです」 ってのは
えっとその「ダメです」がどれを指しているかわかりませんが、要は XML のエラーを
XML を処理しているレイヤーの回りで、なるべく楽に、インパクトを少なく回避するか、
ということです。
0696デフォルトの名無しさん
2007/12/21(金) 23:53:07でアプリ側で自由に処理すればいい。
0697デフォルトの名無しさん
2007/12/21(金) 23:54:56そもそも発想が間違ってる。
0698デフォルトの名無しさん
2007/12/21(金) 23:57:400699デフォルトの名無しさん
2007/12/22(土) 00:09:450700デフォルトの名無しさん
2007/12/22(土) 00:18:120701デフォルトの名無しさん
2007/12/22(土) 00:37:460702デフォルトの名無しさん
2007/12/22(土) 15:24:41え?w
0703デフォルトの名無しさん
2007/12/22(土) 15:51:070704デフォルトの名無しさん
2007/12/22(土) 21:55:000705デフォルトの名無しさん
2007/12/22(土) 22:56:370706デフォルトの名無しさん
2007/12/24(月) 13:18:590707デフォルトの名無しさん
2007/12/24(月) 13:32:030708706
2007/12/24(月) 14:07:21ttp://woodstox.codehaus.org/
JDK6とか新しめのJAXPでもxml1.1は使えるでしょ?
0709デフォルトの名無しさん
2007/12/30(日) 18:02:230710デフォルトの名無しさん
2007/12/30(日) 18:14:500711デフォルトの名無しさん
2007/12/30(日) 18:39:07<xsl:sort>でソートするんじゃダメ?
0712デフォルトの名無しさん
2007/12/30(日) 19:48:560713デフォルトの名無しさん
2007/12/30(日) 23:36:32Unicode使えるんだから、もっと膨張を抑えたエンコードも出来るはず。
0714デフォルトの名無しさん
2007/12/31(月) 05:28:280715デフォルトの名無しさん
2007/12/31(月) 09:58:360716デフォルトの名無しさん
2007/12/31(月) 11:34:270717デフォルトの名無しさん
2008/01/01(火) 20:37:490718デフォルトの名無しさん
2008/01/03(木) 16:53:520719デフォルトの名無しさん
2008/01/03(木) 18:42:220720デフォルトの名無しさん
2008/01/09(水) 10:06:44eXistかDB2のExpress-Cでも使っとけ
0721デフォルトの名無しさん
2008/01/12(土) 00:12:510722デフォルトの名無しさん
2008/01/12(土) 01:01:460723デフォルトの名無しさん
2008/01/12(土) 01:48:41<a>
<b>ABC</b>
<b>123</b>
</a>
このようなXMLで、1番目の<b>要素はstring型、2番目の<b>要素は
integer型であることを検証したいと思っているのですが、wxsでは
同名の要素を異なる型で定義することができません。
何かうまい方法はないでしょうか?
0724デフォルトの名無しさん
2008/01/12(土) 02:15:310725デフォルトの名無しさん
2008/01/12(土) 03:04:090726デフォルトの名無しさん
2008/01/12(土) 08:37:20色々と間違ってる。
0727デフォルトの名無しさん
2008/01/12(土) 08:46:320728デフォルトの名無しさん
2008/01/12(土) 10:19:150729デフォルトの名無しさん
2008/01/12(土) 10:34:360730デフォルトの名無しさん
2008/01/12(土) 13:49:140731デフォルトの名無しさん
2008/01/12(土) 13:53:490732デフォルトの名無しさん
2008/01/12(土) 15:16:25well-formed XML は valid XML を包含するからvalidatorは必要ない?
0733デフォルトの名無しさん
2008/01/12(土) 16:36:44そんなスキーマの設計になる納得の行く理由を聞きたいが。
0734デフォルトの名無しさん
2008/01/12(土) 17:12:28うん。
non-valid XMLだったら、wel-formed XMLであることを調べる。← これは馬鹿げている。
もっとも、元質問は
> 同名の要素を異なる型で定義することができません。
ではなくて
< 要素の出現順で異なる型を定義したい
という事のようなので、オレの読み違いのようだけど。
0735デフォルトの名無しさん
2008/01/12(土) 18:43:46今回は違うが、食わせるxmlが不定の場合、エラーハンドラくらい実装するから、
これはwel-formedかどうか調べる事になるから別に馬鹿げてる訳でもないと思うが。
馬鹿げてるのはnon-wel-formedなxmlでもパース出来るパーサかと。実際にあるが。
0736デフォルトの名無しさん
2008/01/12(土) 19:11:10↑これを馬鹿げているといってるんだけど、コンパイラが最適化するから問題ないというならそれでもいい。
0737デフォルトの名無しさん
2008/01/12(土) 19:29:09包含してるから、その比較自体無駄だということだろ?
0738デフォルトの名無しさん
2008/01/12(土) 21:24:230739723
2008/01/13(日) 01:12:15結局手はないようですね。
背景説明を端折っていましたが、このXML文書は外部で仕様が定められて
いるもので、それを定義したスキーマ文書は別に存在します。
ただし汎用的なフォーマットなのでかなり制約は緩いものとなっています。
逆にこれを利用するシステム/装置側はそのすべてのバリエーションを
許容することができないため、その特定用途向けの検証をwxsで行おうと
考えていました。
実際に要求されている制約は「name属性が"aaa"の場合はxxx属性が必須で
テキストはxx文字以内」などというものだったりするのですが、さすがに
それは無理だろうと考えていたので、要素の出現順を固定して「1番目の
要素はname属性が"aaa"に等しく、〜」という形で検証しようとしていました。
実はその検証用のxsdを作成する際はSunのmsvを確認に使っていて、
そこでは意図したとおりの検証ができていました。ところがこれを利用する
プログラムが出来て、そちらに掛けてみたところスキーマ文書が受け付け
られず、問題が発覚しました。
ですのでxsdの記述だけで解決できればよかったのですが、別途チェック
プログラムを起こしたりする必要がありそうですね。
0740デフォルトの名無しさん
2008/01/13(日) 02:09:100741デフォルトの名無しさん
2008/01/13(日) 02:12:420742デフォルトの名無しさん
2008/01/13(日) 02:14:41ああ、よくある、上から降りてきた設計のしわ寄せが現場に来るの図ね。
まあそんなことだと思ったよ。
きっとスクリプトで楽することもできないんだろう。
頑張って追加のコードを組んでください。
0743デフォルトの名無しさん
2008/01/13(日) 03:00:200744デフォルトの名無しさん
2008/01/13(日) 03:05:57なんてのもよくある話だから、スキーマベースの検証の限界だと思ってプログラムで
確認しなはれ。
0745デフォルトの名無しさん
2008/01/13(日) 03:50:54というかバカだろそのスキーマ作った奴。
0746デフォルトの名無しさん
2008/01/13(日) 09:19:36自分定義の PI を導入するもんですか?
0747デフォルトの名無しさん
2008/01/13(日) 10:58:16<text><?[[Here is an U+00 ->]]><?character U+00?><?[[<-.]]></text>
こんな感じになるかもしれない。
0748デフォルトの名無しさん
2008/01/13(日) 11:06:09<text><?[CDATA[Here is an U+00 ->]]><?character U+00?><?[CDATA[<-.]]></text>
0749デフォルトの名無しさん
2008/01/13(日) 11:06:53<text><![CDATA[Here is an U+00 ->]]><?character U+00?><![CDATA[<-.]]></text>
0750デフォルトの名無しさん
2008/01/13(日) 11:40:19データでも文章でもない制御系の情報を埋め込むためのもの、という感じで良いのかな?
C で言う #pragma 命令みたいな。<?compiler warning="suppress"?> とか
<?scanning very-very-secure?> とか <?verify hash="02F84298FEDFA" algorithm="md5"?> とか。
0751デフォルトの名無しさん
2008/01/13(日) 11:47:04XMLプロセッサは、対応していないPIは無視することになってるから、#pragmaと一緒やね。
0752デフォルトの名無しさん
2008/01/13(日) 13:52:120753デフォルトの名無しさん
2008/01/13(日) 22:39:470754デフォルトの名無しさん
2008/01/14(月) 16:25:07組版の話だから違うような気もするんだが。
もし妥当なスレがあったら教えてくれるとありがたい。
0755デフォルトの名無しさん
2008/01/14(月) 16:29:39答えられる人がいるかどうかは、また別の話だけど。
0756デフォルトの名無しさん
2008/01/14(月) 21:23:35このスレではわりと勉強させてもらっているが。
あと、XML DBの話はこういうのがある。俺もまだ第一回しか読んでないんだが。
http://www.atmarkit.co.jp/fdb/rensai/xmldbdev01/xmldbdev01_1.html
0757デフォルトの名無しさん
2008/01/14(月) 23:01:25ソレ、役に立たない。
0758デフォルトの名無しさん
2008/01/14(月) 23:31:13XSLとXSL-FOの関係もろくに理解してない奴らばかりだし。
とりあえず仕様書は嫁。でかいけど。
0759デフォルトの名無しさん
2008/01/15(火) 01:03:360760デフォルトの名無しさん
2008/01/15(火) 20:44:020761デフォルトの名無しさん
2008/01/16(水) 20:56:240762デフォルトの名無しさん
2008/01/18(金) 17:25:020763デフォルトの名無しさん
2008/01/18(金) 19:38:02SVGは使われ始めてるのに、こっちは使われてないんだよな。
WYSIWYG特性はこっちのが強いはずなのに。
0764754
2008/01/18(金) 19:48:36今も自宅とは別のマシンから書き込んでる。
で、聞きたかったのはあるブロックがページをまたがないよう
に指定ってできるのかねってこと。
ちなみに俺が使ってるのはXSLFormatter体験版。
0765デフォルトの名無しさん
2008/01/18(金) 20:49:43しかも Adobe が配布していた
SVG ビューアもなんかどっかいっちゃった.
■ このスレッドは過去ログ倉庫に格納されています