公式アカウントからの投稿が始まります

次のようなxmlを作成しました。

<?xml version="1.0" encoding="UTF-8"?>
<tns:StateChange xsi:schemaLocation="http://sample.com/Change.xsd" xmlns:tns="http://sample.com/XSDDefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceName>test</ServiceName>
<wsdl></wsdl>
</tns:StateChange>

wsdl要素の内容として
<?xml version="1.0" encoding="utf-8\"?><wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema"....

といったいわゆるWSDLを文字列として指定したいと考えて、指定するとvalidate時にエラーになってしまいます。

xmlを要素の内容にしたい場合、どのようにすればいいのでしょうか?

A 回答 (3件)

<!ELEMENT wsdl (#PCDATA) >


って話なんだよね?
そこにそれを埋め込むと#PCDATAじゃなく要素と思われるからエラーと。

でもどの話なのか良く判らないな・・・

★文字実体参照に変換していく話

★CDATAマーク区間を使う話
http://www.ne.jp/asahi/minazuki/bakera/html/sgml …
を使う(意外と厄介なので注意が必要)

★外部解析対象外実体の話(そもそも俺はほとんど理解していない)
http://sdc.sun.co.jp/news/200011/tax01.html
    • good
    • 0
この回答へのお礼

ありがとうございました。
実体参照にすることでできました。
HTMLではよくやることなんですが、まったく思いつきませんでした。

お礼日時:2007/06/14 17:15

>同じエラーが発生しました。


なら そもそも別の場所が間違えてるんじゃない?
ソースやvalidのエラーが何であるか判らないとこれ以上は判断できない。

この回答への補足

質問の仕方が稚拙で大変申し訳ございません。
質問の意図としては、たとえば
<wsdl><test></wsdl>
の<test>をxmlの要素ではなく、<wsdl>の要素の内容としたいということです。
つまり<test>の<>をエスケープ?する方法がわかればと考えております。

補足日時:2007/06/14 16:53
    • good
    • 0

<?XML?> はxml宣言だし 大元の方のにも宣言されてるから要らないでしょ。


この宣言だけ外したらできるんじゃない?

この回答への補足

アドバイスありがとうございます。
xml宣言をはずしてみましたが、同じエラーが発生しました。

補足日時:2007/06/14 16:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!