2011-06-17 16 views
2

フォーム(WinForms)に表示されるXSDまたはDTDに基づく動的制御生成を行い、ユーザーが値を入力できるようにします。属性データを記入し、既存のXMLファイルに挿入する正当なXMLフラグメントを作成します。XSDに基づいてXMLを生成するためのフォームを作成するスマートな方法

これは誰でも行うことができますか?もしそうなら、どのようなデザインを使ったのですか?

以下

XSDの例である:

<xs:element name="layer-config"> 
    <xs:complexType> 
     <xs:choice maxOccurs="unbounded"> 
     <xs:element ref="dynamic-feature-layer"/> 
     <xs:element ref="dynamic-image-layer"/> 
     <xs:element ref="folder"/> 
     <xs:element ref="layer"/> 
     <xs:element ref="wms-layer"/> 
     </xs:choice> 
     <xs:attribute name="upload-can-drill-identify" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-extract-excel" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-extract-gml" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-extract-kml" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-find-by-attribute" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-hide-labels" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-identify" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-select" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-select-by-attribute" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-symbolize" type="BOOLEAN_TYPE" use="optional" default="true"/> 
     <xs:attribute name="upload-can-symbolize-by-attribute" type="BOOLEAN_TYPE" use="optional" default="true"/> 
    </xs:complexType> 
    </xs:element> 

私はこれを行うことを考えています、それが何かのためにドロップされたか、変更されます場合には、私は厳格に既存のXMLファイルへのハードコードにしたくないので、それ以外の場合は、すべてのコードを再コンパイルして再コンパイルしてから再起動する必要があります。エンドユーザーにとってもそれは維持可能ではありません。

答えて

1

はい、これは実行可能です。

  • あなたは重要な特性(種類、使用、など)
  • あなたの手であなたの定義を有する定義ファイル(XSD)を、読み取るためにLinqToXMLを使用することができ、あなたが実装する必要があります。ここではいくつかのポインタがありますフィールド
    • の作成を担当するクラスは、このクラスは、にグループ化要素によると、このクラスは、適切にグループフィールドにできなければなりません重要な特性
    • を使用して、一つの定義に基づいて、一つのフィールドを作成する一つの方法を持っている必要があります定義
  • ポジショニングに関してどのアプローチを使用するかを決める必要があります。定義ファイルには位置情報はなく、これがWinForms、WebForms、Silverlightなどであるかどうかは報告されていません。
+0

申し訳ありません - そのWinForms – Vidar

関連する問題