プロが教えるわが家の防犯対策術!

html、perlを使用してホームページを作成しています。
wordファイルをhtml形式で保存した場合や、wordの文章をフォームにコピペ
して送信すると、色々とタグなどがついてくるのですが、
特に調べても出てこないものを教えていただきたいです。

・ style="mso-spacerun:yes" ← wordと同じ様なスペースの間隔で表示?
・ <o:p>~</o:p> ← リスト?Enterキー入力時挿入?IE6/7ではうまく表示されないらしい
・ mso-bidi-font-family ← 「bidi=双方向の」。互換のある書体?
・ tab-stops ← wordのレイアウト系のスペース制御?
・ class=MsoNormal ← msoのcssの読み込み?

一応、見た目のニュアンス的にはこんな感じではないかと思うのですが、
1つでも分かる方いらっしゃいましたら、御教授願います。よろしくお願いします。

A 回答 (1件)

正しい回答は、MS-OfficeやVB開発ツールのSDKなどのリファレンスを見ると仕様がかかれています。



概要だけ。

コードを見るとわかりますが、先頭の宣言部分が普通のHTMLと違いますよね。

xmlns

なんて文字がありますね。これはXML文(インスタンス)の宣言と同じです。もともと、MS-OfficeはXMLへの移行して、半分成功したが、完全移行とはならずに失敗しました。

このNSとはネームスペースを表しています。なのでXMLのネームスペースを ”o” "w" "m" 宣言しました。という事をあらわしています。つまり、HTMLではなく、XML文として作成されています。

全体としてはHTMLなんですが、IEで解釈する部分(IEのみで有効)はXMLとして、XSLTなどのやり方に対応しているということです。この辺はXMLを勉強しないとわからないことです。

なので、<o:p>~</o:p>とは、そのXMLです。IEによってトランスファー(XSLT)、つまり再フォーマットされて表示される部分です(oでネームスペースを宣言されているので、oの次に:というセパレーターでpの動作をXSLTで行います)。

style="mso-spacerun:yesはCSSのしきたりに沿って、対応していないブラウザでは無視され、効果はでません。

CSSに関しては他の事も同じです。class=MsoNormalは単なる、そのようなクラスが、IE側で持っているという事です。当然対応していないブラウザでは無視されるだけです。

タグ名に:と言うセパレーターを使用している場合、XML文として記述されている事に注意してください。先頭がネームスペースであってHTMLのタグではありません。HTMLとしては”o:p”と言うタグとして認識され、無効のタグ名です。よって、対応していないブラウザではタグとしては認識されず、そのままコンテントとして表示されます。

この辺を理解しあ上で、再度ネットなど検索して資料を探してみてください。かならず見つかります。もちろんマイクロソフトのSDKを見れば記載されています。

例:
http://www6.airnet.ne.jp/manyo/xml/office/step4. …
http://msdn.microsoft.com/ja-jp/library/aa163621 …
(このサイトは開発ツールについてくるSDKをWeb上で公開しています。リンクをたどれば、いろんな開発ヒントがみれます)


http://technet.microsoft.com/ja-jp/library/cc750 …
http://www.codeproject.com/KB/office/Wordyna.asp …
http://www.google.co.jp/search?hl=ja&lr=lang_ja& …

http://www.google.co.jp/search?hl=ja&q=urn%3Asch …

上記サイトにMS-OfficeのXMLのスキマーDLサイトが見つかります。そのスキマーを見れば、ある程度は理解できるかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!