Home

XML360

barChart (Bar Charts – DrawingML)

このチャートの横棒グラフまたは縦棒グラフの系列を含みます。

Namespace
http://schemas.openxmlformats.org/drawingml/2006/chart
Parent Elements
plotArea
Child Elements
axId   Axis ID
barDir   BarDirection
dLbls   Data Labels
extLst   Chart Extensibility
gapWidth   Gap Width
grouping   Bar Grouping
overlap   Overlap
ser   Bar Chart Series
serLines   Series Lines
varyColors   Vary Colors by Point

plotArea (Plot Area – DrawingML)

チャートのプロットエリアを定義します。

Namespace
http://schemas.openxmlformats.org/drawingml/2006/chart
Parent Elements
chart
Child Elements
area3DChart   3D Area Charts
3-D 面グラフ
areaChart   Area Chart
面グラフ
bar3DChart   3D Bar Charts
3-D 棒グラフ
barChart   Bar Charts
棒グラフ
bubbleChart   Bubble Charts
バブルチャート
catAx   Category Axis Data
dateAx   Date Axis
doughnutChart   Doughnut Charts
ドーナツチャート
dTable   Data Table
extLst   Chart Extensibility
layout   Layout
line3DChart   3D Line Charts
3-D 折れ線グラフ
lineChart   Line Charts
折れ線グラフ
ofPieChart   Pie of Pie or Bar of Pie Charts
pie3DChart   3D Pie Charts
3-D 円グラフ
pieChart   Pie Charts
円グラフ
radarChart   Radar Charts
レーダーチャート
scatterChart   Scatter Charts
散布図
serAx   Series Axis
spPr   Shape Properties
stockChart   Stock Charts
株価チャート
surface3DChart   3D Surface Charts
3-D 等高線グラフ
surfaceChart   Surface Charts
等高線グラフ
valAx   Value Axis

画像の幅と高さ(ピクセル)をEMUに変換

サンプルコードはC#です。Image クラスの拡張メソッドとして動作します。

public static class ImageUtility
{
    private const int EmuPerInch = 914400;

    // イメージの幅をEMUで取得します。
    public static double EmuWidth(this Image image)
    {
        return (image.Width / image.HorizontalResolution * EmuPerInch);
    }

    // イメージの高さをEMUで取得します。
    public static double EmuHeight(this Image image)
    {
        return (image.Height / image.VerticalResolution * EmuPerInch);
    }
}

chart (Chart – DrawingML)

チャートを定義します。

Namespace
http://schemas.openxmlformats.org/drawingml/2006/chart
Parent Elements
chartSpace
Child Elements
autoTitleDeleted   Auto Title Is Deleted
backWall   Back Wall
dispBlanksAs   Display Blanks As
extLst   Chart Extensibility
floor   Floor
legend   Legend
pivotFmts   Pivot Formats
plotArea   Plot Area
plotVisOnly   Plot Visible Only
showDLblsOverMax   Show Data Labels over Maximum
sideWall   Side Wall
title   Title
view3D   View In 3D

chartSpace (Chart Space – DrawingML)

この要素では単一のチャートに対する全体的な設定を指定します。また chart part のルートノードです。

Namespace
http://schemas.openxmlformats.org/drawingml/2006/chart
Parent Elements
DrawingML Chart パートのルート要素
Child Elements
chart   Chart
clrMapOvr   Color Map Override
date1904   1904 Date System
externalData   External Data Relationship
extLst   Chart Extensibility
lang   Editing Language
pivotSource   Pivot Source
printSettings   Print Settings
protection   Protection
roundedCorners   Rounded Corners
spPr   Shape Properties
style   Style
txPr   Text Properties
userShapes   Reference to Chart Drawing Part

Open XML Formats SDK 1.0 リリース

6月になってしまいましたが Open XML Formats SDK 1.0 がリリースされたようです。

OpenXML Developer: Open XML Formats SDK Version 1 released
http://openxmldeveloper.org/archive/2008/06/11/3342.aspx

ダウンロードのページには「April CTP」と書かれていますが、日付は 6/10/2008 になっています。

XML + CSS2.0

  • 2008-05-09 (Fri)
  • Memo

XML + XSLT は普通ですが、XML + CSS2.0 もできると知って試してみました。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="default.css"?>
<root>
 ...
</root>

CSS をスタイルシートとして指定した XML ファイルを Firefox と IE で表示させてみましたが、確かに効いてるようです。
しかし XHTML でなければブラウザが特別なレンダリングをしてくれるわけではないので使いどころは思いつきません。もっともどのようにレンダリングしてほしいかについて CSS を駆使するという方法もあると思いますが、あまり意味はなさそうです。

Open XML が ISO 標準に

今週になってから結果の発表がいつになるかと思ってましたが、ついに Open XML が ISO の標準になるようです。

Microsoft – Ecma Office Open XML Document Format Appears to Win Approval as ISO/IEC Standard

企業間の政治的な駆け引きを中心にいろいろ議論を呼んではいますが、単純に一開発者の立場からすれば望ましい結果になったと思います。

Open XML SDK 1.0 は2008年5月リリース

Open XML Developer: Microsoft announces Open XML SDK roadmap

2007年6月にCTPがリリースされて以来音沙汰のなかった Open XML SDK (Microsoft SDK for Open XML Formats) ですが、4月8日に CTP2 をリリースした後、5月に Version 1.0 がリリースされるようです。
また Version 2.0 のCTPは今年の夏に、正式バージョンは次期オフィス (Office 2009?) のリリース時に関連する製品や技術の一部として提供されるようです。

1.0 はパーツ (Part) に対して.NET のクラスで型付けしています、というのが主で基本的にそれ以上のものではありませんが、2.0 で実装予定の機能にはなかなか興味深い機能がリストアップされています。

  • コンテンツ オブジェクト モデル
  • いままではパーツの中の XML に関しては SDK のサポートがなかったわけですが、これがサポートされるようです。今までは SDK を使用しても WordprocessingML, SpreadsheetML 等の知識がないとドキュメントの読み取り・編集が困難だったのですが、これが(どの程度か分かりませんが)解消されるのであれば喜ばしいことです。

  • 検索機能
  • ドキュメントの中身を検索する簡便な方法が提供されるようです。

  • 妥当性検証
  • 編集または作成したドキュメントが Open XML の標準に準拠しているかどうかを検証する機能が提供されるようです。今でも仕様書と一緒に XML Schema の定義が提供されているので独自にこれを行うことも可能ですが、もちろん SDK 内に吸収してくれれば楽になります。

  • 高度なシナリオベース機能 (High-level “scenario-based” functionality)
  • 「テンプレートからドキュメントを作成する」「すべての校閲の承諾」などがこの機能の例として挙げられています。コンテンツオブジェクトモデルの API が低レベルの API であるのに対して、より通常使っているオフィスの機能としてイメージしやすい部分が API として提供されるのでしょうか。

  • Shared ML 関連クラスの提供
  • DrawingML に代表される WordprocessingML, SpreadsheetML, PresentationML で共有される Shared ML 関連のクラスが提供されるようです。例としては「チャート」パーツに対応するクラスが挙げられています。

こうしてみると SDK と聞いて期待する機能は 2.0 に盛り込まれているようです。2.0 の CTP はちょっと楽しみです。

ところで例の ISO の決着はまだ着いていませんが、ECMA の頃の仕様に随分手が入っていることは間違いありません。ISO の標準になったら(ならなくても?)次期 Office は新しい仕様ベースになるんだと思いますが、SDK は2つの仕様をどうサポートするんでしょうか?興味深いところです。

[C#] WebRequest#GetResponse() でプロトコル違反

  • 2008-02-18 (Mon)
  • Memo

WebRequest.GetResponse() で「サーバによってプロトコル違反が発生しました。Section=ResponseHeader Detail=CR の後には LF を指定しなければなりません。」という例外が発生することがあります。
原因は本当にサーバ側にあるんですが。
とはいいつつこれを回避したい場合、アプリケーション構成ファイルに次のように記述します。

<configuration>
  <system.net>
    <settings>
      <httpWebRequest useUnsafeHeaderParsing="true"/>
    </settings>
  </system.net>
</configuration>

コードの中に記述したい場合は次の通りです。

using System.Configuration;
using System.Net.Configuration;

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
SettingsSection section = (SettingsSection)config.GetSection("system.net/settings");
section.HttpWebRequest.UseUnsafeHeaderParsing = true;
config.Save();

追記 (2008.03.04) 使い方に問題があるのかも知れませんが上記のようにコードで記述した場合、設定が無効になってしまう場合があるようです。ということで Web.Config または App.Config に記述するのが確実です。

Home

Search
Feeds
Meta

Return to page top