BPELで、二つの変数を XSLT の入力として使いたい場合、11g なら doXSLTransform を使えば良いけど、10g だと未サポートなので bpelx:append で要素をひとつにまとめて processXSLT 関数に渡すことになる。
このとき追加先となる BPEL変数は、スキーマ定義から逸脱して well-formed ではあっても valid ではない形にもなるが、非valid な XMLでも、内部の処理で変数として使う分には、別段、問題ないらしい。(さすがに外部に公開するサービスではまずいだろうけど。)
実は、自分の場合、内部の処理でも valid なXMLでないと駄目だと思い込んでしまって、若干はまった。XMLスキーマを変更して内部処理用の新たな型を追加しようとしたものの、最近入った現場ではそれがしにくい事情があって、けっこう悩んだ。valid でなくても良いんだと気づいたら本当にしょうもない話だが…
ちなみに JDeveloper の XSL デザイナの恩恵は得られないけど、もともと大して便利なツールじゃないし、これは別にいいや。<annotation> を取り除いて、Transform じゃない単なる Assign の xpath 関数にしてした上でソースを直接編集しても、それほど手間は変わらない。
0 件のコメント:
コメントを投稿