googleガジェットの自作中に、アップロードしたガジェットを指定した際に出たエラー。
追加したガジェットは無効です Unsupported feature: org.apache.shindig.common.xml.XmlException: Content is not allowed in prolog. At: (1,1) メッセージの「At: (1,1)」の部分から判断すると、ファイルの先頭1文字目から間違っているらしい。というかこの場合は「XML宣言の前に余計なものを書くな」という解釈がより適切か。しかし、ファイルを肉眼で見た感じでは問題がないように見える。
で、バイナリエディタで開いてみてみると、「EF BB BF」の3バイトがXML宣言の前に入っていることがわかった。「efbbbf」をググるとUTF-8であることを明示するためのBOM(byte order mark)であることがわかり、これがあると動かないケースがあるとの説明を発見(※)。で、BOM部分を削除してアップロードしたところ正常に動いた。
(※)逆になければ動かないケースも、あってもなくても動くケースもある。アプリやシステムの仕様による。
今回の原因は、以下の3点です
ただ、「Google Gadget Editorで保存すると、BOM付きのUTF-8で保存」なんて情報もありました。 SIROの独り言:mixiアプリを作るまで ~その0~ - livedoor Blog(ブログ) http://blog.livedoor.jp/siro1978jp/archives/51533733.html |
エラーと対処方法 >