xml要素の内容にxmlを入れる方法は?

このQ&Aのポイント
  • xml要素の内容にxmlを入れたい場合、どのようにすれば良いのか?
  • 指定したxmlを要素の内容として使用する方法はあるのか?
  • WSDLを文字列として指定したい場合、エラーが発生してしまう問題を解決する方法はあるのか?
回答を見る
  • ベストアンサー

要素の内容にxmlを入れたい

次のような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を要素の内容にしたい場合、どのようにすればいいのでしょうか?

  • XML
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

<!ELEMENT wsdl (#PCDATA) > って話なんだよね? そこにそれを埋め込むと#PCDATAじゃなく要素と思われるからエラーと。 でもどの話なのか良く判らないな・・・ ★文字実体参照に変換していく話 ★CDATAマーク区間を使う話 http://www.ne.jp/asahi/minazuki/bakera/html/sgml/markedsection.html.ja.utf-8 を使う(意外と厄介なので注意が必要) ★外部解析対象外実体の話(そもそも俺はほとんど理解していない) http://sdc.sun.co.jp/news/200011/tax01.html

arne1000
質問者

お礼

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

その他の回答 (2)

noname#39970
noname#39970
回答No.2

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

arne1000
質問者

補足

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

noname#39970
noname#39970
回答No.1

<?XML?> はxml宣言だし 大元の方のにも宣言されてるから要らないでしょ。 この宣言だけ外したらできるんじゃない?

arne1000
質問者

補足

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

関連するQ&A

  • VB.netでXMLファイルの妥当性チェック

    下記のようなXMLファイルを読み込み、 スキーマファイルで妥当性の検証を行っているのですが、 'http://www.w3.org/2001/XMLSchemainstance:schemaLocation' 属性が宣言されていません。 というエラーになってしまいます。 schemaLocationはxsdにも宣言しないとまずいのでしょうか?どなたかご存知のかた教えてください。 ------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <rfd:rdmxmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:rfd="file://XML\Samples\TEST" xsi:schemaLocation="file://XML\Samples\TEST C:\XML\Samples\Person.xsd"> <Person> <Date>2003-12-03T13:20:00+08:00</Date> <Name>H.HIGASHINO</Name> </Person> </rfd:rdm> -------------------------------------------------

  • web.xmlの中の<web-app>についてなんですが

    こんばんは。<web-app>についてなんですが、 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> といった類の内容をよくみかけますし、当たり前のように記述されていますが、 version="2.5"(これはサーブレットのバージョンが2.5という事でいいのでしょうか?)のところをversion="100" とかにしても動きますし、xml:schemaLocationのところにでたらめなurlを入れても動きますし、<web-app>だけでも動きますが、 <web-app>だけでは、なにか都合の悪いことでもあるのでしょうか。

  • web.xmlの書き方2

    すいません下の質問なのですが フォルダ構成は WEB-INF |____classes___test___Test.class | |____jsp(空) | |____web.xml となっております。 あと質問に追加なのですが。 他の書籍のweb.xmlを参考にして web.xmlの書き出しの部分を <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> では無く、 <?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> にしてトライしてみたところ、そもそもTomcatを起動させる時点で多数のエラーが出ます。 Tomcatのエラーは 致命的: Parse Error at line 8 column -1: 要素タイプ "servlet-name" は宣言されて いません。 org.xml.sax.SAXParseException: 要素タイプ "servlet-name" は宣言されていません。 といった物が多数でます。 これについてもお答え願えれば幸いです。 それでは失礼いたします。

    • ベストアンサー
    • Java
  • XMLSchemaのデータ型をインポートしたい

    外部ファイルで定義したXMLSchemaのデータ型をimportで取り込んで使おうとすると、エラーになってしまいます。 XMLSchemaで使用するデータ型を次のように定義しました。 ------------- datatype.xsd ---------------- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <sd:schema  targetNamespace="http://datatype.com"  xmlns:datatype="http://datatype.com"  xmlns="http://datatype.com"  xmlns:sd="http://www.w3.org/2001/XMLSchema" > <sd:simpleType name="html_xhtml_id">  <sd:restriction base="sd:token">   <sd:pattern value="[A-Za-z]+[A-Za-z0-9]*" />  </sd:restriction> </sd:simpleType> </sd:schema> ------------------------------------------------- そして次のようにXMLSchemaで呼び出しました。 ----------------- caller.xsd ----------------------- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <sd:schema  targetNamespace="http://example.com"  xmlns="http://sample.com"  xmlns:datatype="http://datatype.com"  xmlns:sd="http://www.w3.org/2001/XMLSchema" > <sd:import namespace="http://datatype.com" schemaLocation="./datatype.xsd" /> <!-- ここでエラーが発生する模様 --> <sd:element name="testElement" type="datatype:html_xhtml_id" /> </sd:schema> ----------------------------------------------------------- エラーの内容(Java): org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'datatype:html_xhtml_id' to a(n) 'type definition' component. ちなみに、datatype.xsdで定義せずにcaller.xsdで定義したデータ型を使っても、エラーは発生しません。 何がいけないのでしょうか。 分かる方よろしくお願いします。

    • 締切済み
    • XML
  • targetNamespaceは不要?

    xmllint.exeを使い、XML Schemaの動作実験をしています。 が、下記 XML Schemaでどうしてもエラーが出て頓挫しています。 その解決方法を伺っても宜しいでしょうか? エラーの具体的な内容は、TestElement要素の型がおかしいとの事した。 <?xml version="1.0" encoding="UTF-8" ?> <xsd:schema version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="test_namespace"> <xsd:simpleType name="MyByte"> <xsd:restriction base="xsd:byte"/> </xsd:simpleType> <xsd:element name="TestElement" type="MyByte"/> </xsd:schema> 尚、targetNamespace属性を除去するとエラーが出なくなります。が「この属性は使うべき」とあるHPに書いてあった為、困っております。 どうか宜しくお願い致します。

    • ベストアンサー
    • XML
  • web.xmlの書き方

    web.xmlの書き方 質問させてください webcontent\day5\rsMeta.jspというファイルにブラウザからアクセスしたいのですが、エラーが出ます。 web.xmlの書き方が間違っているのですが、どのように書けばよいでしょうか? 現状のweb.xmlを以下に記載します。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Jijyodoryoku</display-name> <servlet> <servlet-name>rsMeta</servlet-name> <jsp-file>/day5/rsMeta.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>rsMeta</servlet-name> <url-pattern>/rsMeta</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • DTDとXML Schemaでのデフォルト値の指定について

    以下のようなXMLをパーズするプログラムがあります。 ------------------------------------------------------------------ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder documentBuilder = factory.newDocumentBuilder(); Document doc = documentBuilder.parse(new InputSourc("a.xml")); ------------------------------------------------------------------ a.xmlに以下のようなXMLの構造をDTDで指定した場合のxmlをパーズさせると、 <!DOCTYPE a [ <!ELEMENT a (#PCDATA)> <!ATTLIST a a1 CDATA "abc"> ]> <a/> 上記のプログラム3行目のvalidationの設定がtrue、falseに関わらす、 <a a1="abc"/> というような形式のドキュメントオブジェクトが返ってきます。 ですが、以下のようにXMLの構造をXML Schemaで定義した場合、 a.xml <a xsi:noNamespaceSchemaLocation="b.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> b.xsd <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="a"> <xsd:complexType> <xsd:attribute name="a1" type="xsd:string" default="abc"/> </xsd:complexType> </xsd:element> </xsd:schema> 返ってくるドキュメントオブジェクトのa要素には、validationがtrueの場合はa1属性が含まれる、falseの場合は含まれません。 これは正しい動作なのでしょうか? また、XML Schemaの場合もvalidationがtrue、falseに関わらず、 デフォルト値が指定された属性を含めることはできないのでしょうか?

    • ベストアンサー
    • XML
  • XML&PHP~数値の取り出し方

    PHPプログラミングで、どうしても解らないので質問させていただきます。 <ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:srch" xsi:schemaLocation="urn:yahoo:jp:srch http://api.search.yahoo.co.jp/WebSearchService/V1/WebSearchResponse.xsd" totalResultsAvailable="8850000" totalResultsReturned="10" firstResultPosition="1"> このtotalResultsReturned="10"の 「10」を取り出すにはどうしたらよいのでしょうか?

    • ベストアンサー
    • PHP
  • SQL ServerのXMLスキーマがうまくいきません。

    「SQL Server 2005 Express」を使用しています。 次のようなスキーマをサーバーに登録して CREATE XML SCHEMA COLLECTION dbo.schema_test AS N'<?xml version="1.0" encoding="UTF-16"?> <xsd:schema targetNamespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:element name="root">  <xsd:complexType mixed="true">   <xsd:choice>    <xsd:element name="A" type="xsd:string" />    <xsd:element name="B" type="xsd:string" />    <xsd:element name="C" type="xsd:string" />   </xsd:choice>  </xsd:complexType> </xsd:element> </xsd:schema>' ; つぎのようなクエリを試したのですが、 「メッセージ 6913、レベル 16、状態 1、行 5 XML 検証: 要素 'root' の宣言が見つかりませんでした。場所: /*:root[1]」 というエラーメッセージが表示されてしまいます。 DECLARE @xml xml (dbo.schema_text) SET @xml = '<root> <A>AAA</A> <B>BBB</B> <C>ooo</C> </root> ' どなたか分かる方がいらっしゃいましたら、 アドバイスをお願いいたします。

  • XMLファイルのアップロードの方法

         宜しくお願い致します 先ごろネットショッピングのHPを立ち上げました。 それでアクセスを増やすために、XMLファイルを作成して グーグルにサイトマップとして送信して登録をしようとしました。 XMLファイルを作る所までは順調だったのですが、自分のHPに アップロードするのがうまくいかなくて弱っています。 ルートディレクトリにアップロードとあるのでその通りにしても、 トップページには、HPのURLが表示されるだけです。 (これでいいのかどうかが分かりません?) sitemap.xml は下記のとおりです <?xml version="1.0" encoding="UTF-8"?> -<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <!-- created with free sitemap generation system www.sitemapxml.jp --> -<url> <loc>http://www3.hp-ez.com/hp/bitowabi/page1/</loc> <priority>1.0</priority> </url> </urlset> 宜しくお願い申し上げます。

専門家に質問してみよう