[ADOS] ADOS Developer's Site - XML Stadium
ADOS Company slogan - XML Total Solution

 #freeze
 RIGHT:> [[Pluxis クッキング]]
 
 #br
 
 XMLを活用したシステムを素早く構築するためのデータモデリング技法
 
 #contents
 
 #br
 
 *多くのシステムで有効な3階層のネスト構造 [#ddfecdf7]
 
 多くのデータは、子要素のみが内容を持つ、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>
 
 #ref(rp01.jpg,center,wrap)
 
 *3階層のネスト構造を定義する汎用的なExcel用XMLスキーマ [#y5567aa9]
 
 ''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システム化) [#q2e80d73]
 
 **プロトタイピング用データ [#of38b001]
 
 #ref(rp02.jpg,center,wrap)
 #br
 #ref(rp03.jpg,center,wrap)
 
 **データが持っている項目名 [#ia11c168]
 
 	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
 
 **列名と項目名の対応を使って管理 [#ydf1370b]
 
   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対応付けをする [#m4e8dac1]
 
 XML対応付け(マッピング)は、ルート要素(table 要素)をシートにドラッグするだけで完了。~
 その結果、各項目とXML要素名とが対応付けされます。
 
 #ref(rp04.jpg,center,wrap)
 
 *PluxisでXMLファイルを出力 [#l4fda326]
 
 #ref(rp05.jpg,center,wrap)
 
  <?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ファイルを出力 [#ee117bd8]
 
 #ref(rp06.jpg,center,wrap)
 
 *列を絞ったブックを用意するだけで簡易フィルタツールが完成 [#zcdf4465]
 
 #ref(rp07.jpg,center,wrap)
 #br
 #ref(rp08.jpg,center,wrap)
 
 *さらなる機能拡張も [#k6c01f20]
 
 -簡易検索システムのプロトタイピング
 -データ更新系とデータ検索系を分離したプロトタイピング
 -列名のXML要素を、実際の項目名に変換する仕組み
 -DB2などのXMLデータベースと連携する仕組み
 -列名(変数)は実データ項目名を抽象化しているので、本格的なオントロジー(セマンティクス)アプローチへの展開も可能
 -列名(変数)は実データ項目名を抽象化しているので、本格的なオントロジー(セマンティックス)アプローチへの展開も可能
 
 

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Copyright 2005-2008. ADOS Co., Ltd. All Rights Reserved.