SharePoint :複数行テキスト列(拡張リッチ テキスト)の「XHTML に変換」ってなんだろう?

拡張リッチ テキストにした複数行テキスト列の編集画面には、リボンに様々な機能があります。Word などに似たUIではありますが、意味のわからない機能もあると思います。個人的には利用頻度ワースト3に入る機能なのであまり気にしていなかったのですが、「XHTML に変換」ってなんだろう?と思ったので調べてみました。

マウスホバー時に出てくるメッセージは

XHTML に変換
基礎となるページを HTML から XHTML 準拠に自動的に変更します。

と書いてあります。複数行テキスト列に入力する作業が多いのは SharePoint 開発者でもなくサイト管理者でもなく、通常の投稿者が大多数でしょうが「なんのこっちゃ?」となるでしょうね。HTMLという言葉くらいは知っていてもXHTMLは知らなかったり、仮に知っていてもHTMLとXHTMLの違いなんて世の中では知らない人が大多数かと思います。

現時点での SharePoint Online ではページのソースを見ると、DOCTYPE宣言には XHTML 1.0 Strict となっています。

なので、HTMLで記述されたソースであれば、 XHTML 準拠のソースに自動変更する便利機能なんだろうと思いますが、正直、投稿者からすれば自分が思ったように表示されていれば裏側のソースがどうのこうのは関係なく、やはり「XHTML に変換」機能自体はマニアックなのかなとは思います。そもそも SharePoint のソース自体が XHTML 1.0 Strict に準拠…!?という話でもありますが。

実際にHTMLで記述したソースが「XHTML に変換」でどうなるかを検証してみる前に、このリッチテキストで「ソースの編集」からソースを入力すると SharePoint 側が勝手に色々ソースを変えるので、その挙動から検証をしてみます。

検証する材料としてのソースですが、HTMLとXHTMLの違いとしては細かいのが色々あるのですが、大きく以下の点を考慮します。

  • HTMLでは大文字小文字どちらもOKだけど、XHTMLでは小文字のみ。
  • XHTMLでは終了タグは省略できない。
  • XHTMLは整形式で記述しなければいけない。
    ×例→<p><span>text</p></span>
    ○例→<p><span>text</span></p>
  • 空要素の場合は/を入れる。

▼これらを全て盛り込んだ検証用HTML

▼XHTMLに準拠した場合

▼では、検証用HTMLのソースを「ソースの編集」から貼り付けてみます。

▼表示のされ方はこのようになります。

この状態で「XHTML に変換」もせずに、もう一度「ソースの編集」を開きます。

▼やはり!(若干違うけど)この時点ですでにXHTMLに変換されてる。

つまり、ソースの編集でHTMLを記述すると、OKを押した時点でXHTMLに変換されるので、なおさら「XHTML に変換」の存在意義がわかりません。


結局、よくわからないので検索してみました。「SharePoint XHTML に変換」で検索しても日本語では有用な情報がなかったんです。仕方ないので英語サイトの情報を検索します。「XHTML に変換」は英語では「Convert to XHTML」です。しかしそれで検索しても情報がうまく見つけることができませんでした。つまり世界的にあまり利用もされていなく気にもされていない機能なのでしょうか。ただ、正解はわからないけど若干情報が出てきました。

それによると、「XHTML に変換」の用途は、例えばExcelからコピペしたあとに、そのソースをXHTMLに準拠したソースに変換しましょう!という事のようです。なるほど。実際にやってみます。

▼Excelの表部分をコピーします。

▼複数行テキスト列内にペーストすると見た目はしっかり再現されています。

▼ソースを見てみるとこんな感じで非常に汚いソースです。

ここで目立つのはfontタグがある事です。すっかり前段で検証し忘れていたけど、XHTMLの中でもStrictではfontタグは使用できません。つまりこのソースはXHTML 1.0 Strictには準拠していないという事になります。

では、この状態で「XHTML に変換」をしてみます。

▼fontタグが全てdivに変換されました!(汚いソースには変わりはありませんが…。)

その後、前段で検証し忘れていた「XHTML に変換」をしなくてもソースの編集でHTMLを入力したら SharePoint が勝手にソースを変えるという点ですが、fontタグはfontタグのままでした。

つまり、fontタグ以外のXHTML準拠の部分に関しては、「XHTML に変換」をせずとも変換してくれ、今のところ「XHTML に変換」はfontタグをdivタグに変換するだけの機能という感じ。

他にもあるのかもしれませんが、結局はHTMLをXHTMLにしますよという言葉以上の事はしないだろうし、「XHTML に変換」をしなくても、XHTMLの中にHTMLが入っていても、文法上は間違っていてもブラウザエラーになることもなく見た目は同じなので、投稿者目線では別にやらなくても良い行為で…やはりこの機能は利用頻度ワースト3不動かなと思います。

SharePoint 複数行テキスト列で画像・ビデオ・ファイルを挿入する際の「宛先ライブラリ」の初期値変更

※画像もビデオもファイルも全て同じなので、以下の例は画像にします。

SharePoint2007ではリストのアイテムの本文内に画像を表示したい場合、ちょっと面倒でした。通常のブログサービスのようにリッチテキストエディタからファイルをアップロードすればOKというわけではなく、一旦ライブラリに画像をアップし、そのURLをコピーして、リストのアイテムの複数行テキスト列内に貼り付けるような、投稿者に操作をお願いするにはちょっと酷な感じでした。

時を経て、SharePoint2010からはリストのアイテムの(拡張リッチテキストの)複数行テキスト列の場合、リボンタブ「挿入」→「画像」→「コンピューターから」で行う事ができます。これで通常のブログサービスのような操作感に近づいたのかなと思い、喜ばしい機能でした。

この機能はSharePoint2007の頃のような一旦ライブラリに画像をアップするという操作を、リストのアイテム投稿ページから移動せずにダイアログ内で行えるという機能で、結局、任意のサイト内のライブラリに画像ファイルをアップロードするという事には変わりありません。アップされると同時に本文内に表示されます。(実際にダイアログ内に表示されているコンテンツを調べると、宛先ライブラリに指定してあるライブラリのUpload.aspxをiframeで表示しているんですよね。)

アップロードする際に表示されるダイアログ内ですが、「宛先ライブラリ」という項目があります。つまりアップロード先のライブラリを指定する項目です。ドロップダウンの中にはサイト内のライブラリが一覧で表示されます。

ここは初期値で「サイトのリソース ファイル」ライブラリが選択されています。でも、中にはこのライブラリは利用されたくない場合もあると思います。ただ、初期値として設定されてしまっているので、「宛先ライブラリでは○○ライブラリを指定してください」と投稿者に指導をしたところで、操作ミスや失念でアップロードされてしまう可能性もあり、できれば初期値を別のライブラリに変更したいですよね。しかし、ここの初期値を変更できる設定はリスト内には存在しません。

標準機能では宛先ライブラリの初期値を変更できないのかと思ったら、ちょっと分かりづらい場所にあったので紹介します。

各ライブラリの詳細設定の中に設定項目があるんです。「サイトのリソース ファイル」ライブラリの詳細設定を見てみると、「サイト リソース ライブラリ」という項目が「はい」になっています。(サイトのリソース ファイルライブラリ内のサイト リソース ライブラリ…ややこしいですね。)この説明だけ読んでも宛先ライブラリの初期値に関わってくる項目とはわかりませんね。

「サイトのリソース ファイル」ライブラリのこの項目を「いいえ」に変更した後に、その後作成した宛先ライブラリで初期値にしたい「画像用ライブラリ」のこの項目を「はい」にすると、宛先ライブラリの初期値が「画像用ライブラリ」になりました。

ちなみにこの設定項目はサイト作成時に「サイトのリソース ファイル」ライブラリのみ「はい」になっており、その後作成するライブラリでは既定では「いいえ」で作成されます。

また、この設定での「はい」「いいえ」は上述の通り、宛先ライブラリの初期値の設定のようで、宛先ライブラリのドロップダウンに表示・非表示の設定ではないようです。「いいえ」にしても初期値にならないだけでドロップダウン内には選択肢の値として存在します。ここに表示・非表示という設定があれば良いのですが、今のところ見当たりません。例えば投稿者には選択肢の値として表示されたくない場合は、該当ライブラリのアクセス権限を外すなどの対応になるのかなと思います。

複数ライブラリでこの項目を「はい」にした場合の挙動はどうなるのか?を検証したところ、またまた興味深い結果になりましたので、それは日を改めて記事にしたいと思います。