プレゼンテーションにHTML5タグを含むアイテムの検証が失敗する


説明

アイテムのプレゼンテーションにHTML5を使用したり、アイテムのフィールド(例えば、リッチテキスト フィールド)にHTML5タグを追加したりする場合、デフォルトのSitecoreアイテムおよびフィールドの検証が失敗する可能性があります。

また、これにより、ワークフロー状態でのアイテムの承認ができなくなる恐れがあります。また、検証結果に次のメッセージが表示される可能性があります:

Sitecoreがアイテムのマークアップおよびフィールド コンテンツを検証する際に<article>、<details>、<dialog>などのHTML5に特有のタグの検証に失敗するXSDスキーマ バリデータを使用しているため、この問題が発生します。

解決策

現時点では、HTML5専用の検証スキーマがまだ存在しません。ただし、Sitecoreが現在XHTML検証に使用しているXSDスキーマを拡張し、一部のHTML5タグを許可することは可能です。元のスキーマ ファイルは、web.configのXHtmlSchemaFile設定に配置・指定されています:

<setting name="XHtmlSchemaFile" value="/sitecore/shell/schemas/sitecore xhtml.xsd" />

例えば、<article>タグを許可するには、次に従って、スキーマ ファイルを修正する必要があります:

  1. <article>タグのrootノード配下に、新しいxs:elementノードを作成します:
    <xs:element name="article">
        <xs:complexType mixed="true">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="block" />
            <xs:group ref="inline" />
            <xs:group ref="misc" />
          </xs:choice>
          <xs:attributeGroup ref="coreattrs" />
        </xs:complexType>
      </xs:element>
  2. 新しく作成されたエレメント定義をブロック属性のグループに追加します:
    <xs:group name="block">
        <xs:choice>
          <xs:element ref="p" />
          <xs:group ref="heading" />
          <xs:element ref="div" />
          <xs:group ref="lists" />
          <xs:group ref="blocktext" />
          <xs:element ref="fieldset" />
          <xs:element ref="table" />
          <xs:element ref="article" />
        </xs:choice>
      </xs:group>

または、XHTML検証を無効化して、HTML5マークアップを含むアイテムをワークフローで承認できるようにすることができます。これを実施するには、次のアイテムのWorkflowフィールドからFull Page XHtmlおよびIs Xhtmlルールを削除してください: