要素タイプ"meta"は、対応する終了タグ"</meta>"で終了する必要があります。となったときの対応方法

- 環境
    - Windows10 64bit バージョン1909
    - openjdk 11 2018-09-25
    - Eclipse IDE for Enterprise Java Developers Version: 2020-03 (4.15.0)
    - JSF 2.3.9

# 事象 : metaタグでviewportを指定したらエラーになった
```bash
2020-08-19 11:02:09:810 X-TrackingId:6ac183f5-3ea5-41d4-993b-231267d1    ERROR   ExceptionHandler.handle:63 Error Parsing /ponsuke/sampleEdit.xhtml: Error Traced[line: 28] 要素タイプ"meta"は、対応する終了タグ"</meta>"で終了する必要があります。
javax.faces.view.facelets.FaceletException: Error Parsing /ponsuke/sampleEdit.xhtml: Error Traced[line: 28] 要素タイプ"meta"は、対応する終了タグ"</meta>"で終了する必要があります。
    at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:445)
    at com.sun.faces.facelets.compiler.SAXCompiler.doMetadataCompile(SAXCompiler.java:428)
    at com.sun.faces.facelets.compiler.Compiler.metadataCompile(Compiler.java:88)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.createMetadataFacelet(DefaultFaceletFactory.java:455)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$200(DefaultFaceletFactory.java:65)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:166)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:163)
    at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:76)
    at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:69)
    at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:76)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:91)
    at com.sun.faces.facelets.impl.DefaultFaceletCache.getViewMetadataFacelet(DefaultFaceletCache.java:124)
    at com.sun.faces.facelets.impl.DefaultFaceletCache.getViewMetadataFacelet(DefaultFaceletCache.java:39)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:268)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:198)
    at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:122)
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:223)
...省略...
```

```xml:sampleEdit.xhtml
<h:head>
  <!--省略-->
  <meta name="viewport" content="width=device-width, initial-scale=1">
</h:head>
```

## 原因 : タグを閉じていないから
> タグの省略
> 空要素であるため開始タグは必須であり、終了タグは置いてはいけません。
> [&lt;meta&gt;: 文書レベルメタデータ要素 - HTML: HyperText Markup Language | MDN](https://developer.mozilla.org/ja/docs/Web/HTML/Element/meta)

え・・・・metaタグって終了タグ必要なの？

> 終了タグ
> なし（XHTMLの場合は/を最後につける）
> [metaタグとは｜コーディングのプロが作るHTMLタグ辞典](https://html-coding.co.jp/annex/dictionary/html/meta/)

おぉぉ、XHTMLファイルを使っているから**空要素には終了` />`が必要**だった！

> C.2 空要素
> たとえば \<br /> や \<hr />, \<img src="karen.jpg" alt="Karen" /> といったように、空要素の末尾の / と > との前にスペースを1個組み込むこと。また、たとえば <br /> といったように、空要素には最小化タグ文法を使うこと。これは、XMLで許容されている代わりの文法 <br></br> は、多くの既存のユーザエージェントでは与えられる結果が一定しないからである。
> [XHTML 1.0: 拡張可能ハイパーテキストマークアップ言語](http://www.doraneko.org/webauth/xhtml10/20000126/Overview.html#guidelines)

### 対応 : XHTMLでは空要素であるmetaタグの最後に/をつける
```xml:sampleEdit.xhtml
<h:head>
  <!--省略-->
  <meta name="viewport" content="width=device-width, initial-scale=1" />
</h:head>
```