
PHPのDOMDocumentを使ってXMLデータを生成しています。
$dom->schemaValidate('xsdファイル');
で失敗してしまします。
どうしても原因がわからないので吐き出すデータを最小限にして試してみましたが状況が変わりませんでした。
スキーマは以下のようになっています。
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="user" type="user_type" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="user_type">
<xsd:sequence>
<xsd:element name="developerID" type="xsd:string" />
<xsd:element name="operation" type="xsd:string" />
<xsd:element name="User-Agent" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
そして吐き出されるxml形式のデータは、
<?xml version="1.0" encoding="Shift-JIS"?>
<Response>
<user>
<developerID>testdeveloperID</developerID>
<operation>testoperation</operation>
<User-Agent>Mozilla/5.0 (Windows NT 6.0; rv:7.0.1) Gecko/20100101 Firefox/7.0.1</User-Agent>
</user>
</Response>
出てしまうエラーは、
Warning: DOMDocument::schemaValidate() [<a href='domdocument.schemavalidate'>domdocument.schemavalidate</a>]: The document has no document element. in "実行しているphpファイルのパス" on line 12
ちなみに実行phpの12行目には、
$dom->schemaValidate('xsdファイル');
があります。
スキーマを使用してのxmlデータ吐き出しは初めてなのでいろいろと戸惑っています。
何か解決方法もしくはエラーが出てしまう原因をご存知の方がいらっしゃいましたらアドバイスをいただけないでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
DOMドキュメント($dom)の生成時や、コード12行までに至るまでの処理途中に問題があり、DOMドキュメントの中身が空になっているということはないでしょうか?
あと、参考URLの内容もチェックされてみてください。
※それでも解決しない場合は、よろしければ、コードも差し支えない範囲で補足に記載されると、他の方のご回答の参考になるかもしれませんよ。
ご参考まで。
参考URL:http://atamoco.boy.jp/php5/dom/libxml_use_intern …
domdocumentをインスタンス化してすぐにスキーマを適用させてしまったため、発生したエラーのようでした。
全て値を入れsaveXML()を呼ぶ直前にschemaValidateを実行したらうまくいきました。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP php ログイン 1 2022/11/01 00:24
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
属性リスト宣言
-
CPUの考え方を教えてください ...
-
複数のxmlファイルの合体
-
PHPを使ったDOMの操作で兄弟ノ...
-
ルート要素ノードが2個ある場合?
-
xmlから吐き出したhtmlデータの...
-
html→xmlの変換
-
C言語のプログラムを教えてくだ...
-
質問
-
xalanが利用できません。
-
DTDファイルをクラスパスから読...
-
DOSコマンドラインからxmlファ...
-
XSLスタイルシートについて
-
xmlの初歩の初歩の質問ですが
-
2つの行動の違い
-
HTTPステータス 404 - There is...
-
JavaScriptを使うとXMLで実体参...
-
YAHOOオークションAPI ...
-
XMLとXSLTでリンクを張る方法
-
サイトマップの作り方。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PerlによるXMLからCSVへの変換...
-
エクセルVBAのFunctionプロシー...
-
順不同・任意のタグ
-
属性リスト宣言
-
内容にテキストを持つタグの属...
-
XML の属性部分を JavaScript ...
-
PHPでXMLデータ生成、スキーマ...
-
XMLファイルからXML Schemaを参...
-
最低1つの要素が存在するグルー...
-
XMLのネームスペースの指定・変...
-
計算問題が分かりません… どな...
-
XMLスキーマのrefの使い方
-
Eclipse でBASIC認証するには
-
XMLで主キーを自動的に入力する...
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
バッチファイルでテキストファ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
XMLで要素が記述された順番に意...
おすすめ情報