【エラー解決方法】cvc-complex-type.2.3: Element ‘*****’ cannot have character [children], because the type’s content type is element-only. pom.xml
目次
こんにちは。飯塚です。
最近、自社サービスのCODEMATICを改良しているのですが、開発中に出たpom.xmlのエラー解消方法をブログにまとめました。pom.xmlのエラーは焦りますし、普段見慣れないエラーなので解決に15分かかりました。同じエラーで悩んでいる方の参考になれば幸いです。
エラー再現環境
| 項目 | 詳細 |
|---|---|
| OS | Windows 11 |
| 言語 | Java 11 |
| IDE | Eclipse 2023-12 (4.30.0) |
| プロジェクト管理ツール | Maven |
エラー内容:「cvc-complex-type.2.3: Element ‘*****’ cannot have character [children], because the type’s content type is element-only. pom.xml」
pom.xmlを編集中に下記のエラーが表示されることがあります。

端的には、XMLの構文エラーという意味です。
「cvc」は”Content Validation Constraint” (コンテンツ検証制約) の略称で、「cvc-complex-type」は「XML Schemaで定義された複合型(complex type)の制約に違反している」場合にエラーメッセージとして表示されるようです。
原因:XMLの構文誤り
上記の通り、XMLの構文エラーが原因で、一般的には下記のような可能性が考えられます。
- 要素タグ間に余分な空白や改行が入っている
- 要素内に不要なテキストが入っている
今回のサンプルでは、あえて全角スペースを加えることでエラーを発生させました。pom.xmlをに編集中に何かの拍子で全角スペースや余計な文字を入れて保存してしまった、というのが実業務でもありえそうですね。
他にはファイルにBOMがついていたので削除すれば直った、というケースもあるようです。
ちなみに補足ですが、似たエラーとして下記もあります。開始タグと閉じタグが揃っていない場合に発生するようです。
XMLプロジェクト・ビルド・エラー: Non-parseable POM 【プロジェクトのパス】\pom.xml: TEXT must be immediately followed by END_TAG and not START_TAG (位置: START_TAG seen ...
解決法:XMLの構文エラーを修正する
上記の通り、誤入力を修正すれば解消します。誤入力を目視で探すのは大変なので、修正前と差分を比較するのが手っ取り早いでしょう。
修正後、ファイルの変更を保存するだけで解消するはずですが、エラーが消えない場合は「Mavenプロジェクトの更新」やEclipseの再起動を試してみてください。
まとめ
いかがでしょうか。
知っていれば瞬殺できるタイプのエラーですが、初めて見ると意外と解決までに時間がかかるかもしれません。今後も環境構築エラー系のブログを書こうと考えておりますので、エラーが発生したときはぜひご覧ください。
《関連記事》
アシスタントリーダー Iizuka 技術の入門・まとめ系を中心に書いてます。あとで読み返したいと感じていただける記事を目指しています。


