![]() |
ADOS Developer's Site - XML Stadium |
![]() |
![]() |
|
![]() |
【ラピッドプロトタイピングのコツ】XMLを活用したシステムを素早く構築するためのデータモデリング技法 多くのシステムで有効な3階層のネスト構造 †多くのデータは、子要素のみが内容を持つ、3階層のネスト要素として表現でき、多くのシステムではこのデータ構造のみで事足りることがしばしばあります。 国.xml <?xml version="1.0"?> <table xmlns="urn:test:1.1"> <row> <col1>日本</col1> <col2>Japan</col2> <col3>東京</col3> </row> <row> <col1>フランス</col1> <col2>France</col2> <col3>パリ</col3> </row> </table> 3階層のネスト構造を定義する汎用的なExcel用XMLスキーマ †cols.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="table"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="row"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="row"> <xs:complexType> <xs:sequence> <xs:element ref="A"/> <xs:element ref="B"/> <xs:element ref="C"/> <xs:element ref="D"/> <xs:element ref="E"/> <xs:element ref="F"/> <xs:element ref="G"/> <xs:element ref="H"/> <xs:element ref="I"/> <xs:element ref="J"/> <xs:element ref="K"/> <xs:element ref="L"/> <xs:element ref="M"/> <xs:element ref="N"/> <xs:element ref="O"/> <xs:element ref="P"/> <xs:element ref="Q"/> <xs:element ref="R"/> <xs:element ref="S"/> <xs:element ref="T"/> <xs:element ref="U"/> <xs:element ref="V"/> <xs:element ref="W"/> <xs:element ref="X"/> <xs:element ref="Y"/> <xs:element ref="Z"/> <xs:element ref="AA"/> <xs:element ref="AB"/> <xs:element ref="AC"/> <xs:element ref="AD"/> <xs:element ref="AE"/> <xs:element ref="AF"/> <xs:element ref="AG"/> <xs:element ref="AH"/> <xs:element ref="AI"/> <xs:element ref="AJ"/> <xs:element ref="AK"/> <xs:element ref="AL"/> <xs:element ref="AM"/> <xs:element ref="AN"/> <xs:element ref="AO"/> <xs:element ref="AP"/> <xs:element ref="AQ"/> <xs:element ref="AR"/> <xs:element ref="AS"/> <xs:element ref="AT"/> <xs:element ref="AU"/> <xs:element ref="AV"/> <xs:element ref="AW"/> <xs:element ref="AX"/> <xs:element ref="AY"/> <xs:element ref="AZ"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="A" type="xs:string"/> <xs:element name="B" type="xs:string"/> <xs:element name="C" type="xs:string"/> <xs:element name="D" type="xs:string"/> <xs:element name="E" type="xs:string"/> <xs:element name="F" type="xs:string"/> <xs:element name="G" type="xs:string"/> <xs:element name="H" type="xs:string"/> <xs:element name="I" type="xs:string"/> <xs:element name="J" type="xs:string"/> <xs:element name="K" type="xs:string"/> <xs:element name="L" type="xs:string"/> <xs:element name="M" type="xs:string"/> <xs:element name="N" type="xs:string"/> <xs:element name="O" type="xs:string"/> <xs:element name="P" type="xs:string"/> <xs:element name="Q" type="xs:string"/> <xs:element name="R" type="xs:string"/> <xs:element name="S" type="xs:string"/> <xs:element name="T" type="xs:string"/> <xs:element name="U" type="xs:string"/> <xs:element name="V" type="xs:string"/> <xs:element name="W" type="xs:string"/> <xs:element name="X" type="xs:string"/> <xs:element name="Y" type="xs:string"/> <xs:element name="Z" type="xs:string"/> <xs:element name="AA" type="xs:string"/> <xs:element name="AB" type="xs:string"/> <xs:element name="AC" type="xs:string"/> <xs:element name="AD" type="xs:string"/> <xs:element name="AE" type="xs:string"/> <xs:element name="AF" type="xs:string"/> <xs:element name="AG" type="xs:string"/> <xs:element name="AH" type="xs:string"/> <xs:element name="AI" type="xs:string"/> <xs:element name="AJ" type="xs:string"/> <xs:element name="AK" type="xs:string"/> <xs:element name="AL" type="xs:string"/> <xs:element name="AM" type="xs:string"/> <xs:element name="AN" type="xs:string"/> <xs:element name="AO" type="xs:string"/> <xs:element name="AP" type="xs:string"/> <xs:element name="AQ" type="xs:string"/> <xs:element name="AR" type="xs:string"/> <xs:element name="AS" type="xs:string"/> <xs:element name="AT" type="xs:string"/> <xs:element name="AU" type="xs:string"/> <xs:element name="AV" type="xs:string"/> <xs:element name="AW" type="xs:string"/> <xs:element name="AX" type="xs:string"/> <xs:element name="AY" type="xs:string"/> <xs:element name="AZ" type="xs:string"/> </xs:schema> Excelの列名をそのままXML要素名に使用しています。プロトタイピング中は、Excelシートの表示と同期がとれるので、非常に便利です。列名要素("A"〜"AZ")は、必要に応じて減らしたり増やしたりしてください。 具体的なプロトタイピング例(海外の自動車データをXMLシステム化) †プロトタイピング用データ †データが持っている項目名 †Mfr Cd Mfr Name Engine Family EF Sys# Evap Family EvF Sys# Division Carline ECS-Ev Displ Tran ETW Ax Ratio Dyno HP Target Coeff A Target Coeff B Target Coeff C Set Coeff A Set Coeff B Set Coeff C Tst Prc Tst Proc Desc Fuel Typ Fuel Type Description Sales Area U Life Emission Cert Level Standard Tier Mult DF Add DF 列名と項目名の対応を使って管理 †A Mfr Cd B Mfr Name C Engine Family D EF Sys# E Evap Family F EvF Sys# G Division H Carline I ECS-Ev J Displ K Tran L ETW M Ax Ratio N Dyno HP O Target Coeff A P Target Coeff B Q Target Coeff C R Set Coeff A S Set Coeff B T Set Coeff C U Tst Prc V Tst Proc Desc W Fuel Typ X Fuel Type Description Y Sales Area Z U Life AA Emission AB Cert Level AC Standard AD Tier AE Mult DF AF Add DF PluxisでXML対応付けをする †XML対応付け(マッピング)は、ルート要素(table 要素)をシートにドラッグするだけで完了。 PluxisでXMLファイルを出力 †<?xml version="1.0" standalone="yes"?> <table> <row> <A>30</A> <B>Ford Motor Company</B> <C>7FMXK04.66RA</C> <D>1</D> <E>7FMXR0265GAS</E> <F>1</F> <G>FORD</G> <H>E250 ECONOLINE 2WD</H> <I>102</I> <J>4.6</J> <K>L4 LOCK-UP/AUTOMATIC/4-SPEED</K> <L>7000</L> <M>4.1</M> <N>35</N> <O>73.42</O> <P>0.7102</P> <Q>0.08574</Q> <R>32.192</R> <S>0.46905</S> <T>0.08676</T> <U>21</U> <V>FED FUEL 2 DAY EXH (BUTANE LOAD)</V> <W>61</W> <X>TIER 2 UNLEADED</X> <Y>FA</Y> <Z>120</Z> <AA>CO</AA> <AB>1.5</AB> <AC>7.3</AC> <AD>HDV</AD> <AE>1</AE> <AF>0.93</AF> </row> …(中略) </table> PluxisでCSVファイルを出力 †列を絞ったブックを用意するだけで簡易フィルタツールが完成 †さらなる機能拡張も †
|
Copyright 2005-2008. ADOS Co., Ltd. All Rights Reserved. |