2011-01-05 18 views
0

いくつかのhtmlを含むXML文書があります。XSD要素に1つのxml子要素とコンテンツ(html/xmlを含む)

<begin-line> 
    <verse-num>6</verse-num>a mixed people<footnote id="f2"> 
     Or <i>a foreign people</i>; Hebrew <i>a bastard</i> 
    </footnote> shall dwell in Ashdod, 
</begin-line> 

詩-num個の要素は、私が欲しい残りは1つのHTMLを保持できる文字列型の大規模なグループ、および脚注のようなこともあり、いくつかのより多くのxml(にvalideted、私が検証wan't唯一の要素であります)。

私は今、トリックをしていないスキーマです。

<xs:element maxOccurs="unbounded" name="begin-line"> 
    <xs:complexType mixed="true"> 
     <xs:sequence minOccurs="0"> 
      <xs:choice maxOccurs="unbounded"> 
       <xs:element name="verse-num"> 
        <xs:complexType> 
         <xs:simpleContent> 
          <xs:extension base="xs:unsignedByte"> 
           <xs:attribute name="begin-chapter" type="xs:unsignedByte" use="optional" /> 
          </xs:extension> 
         </xs:simpleContent> 
        </xs:complexType> 
       </xs:element> 
      </xs:choice> 
     </xs:sequence> 
     <xs:attribute name="class" type="xs:string" use="optional" /> 
    </xs:complexType> 
</xs:element> 

私はこの迷惑メールを逆シリアル化できるクラスを生成するためにXSD.exeを使用しています。

これは、その下にverse-num型を持つbegin-lineオブジェクトと、内部のhtml/xmlタグで分割されたテキストの配列を生成しています。

私が必要とするのは、XSD.exeによって、私にverse-num型を与えるbegin-lineクラスを生成するために使用できるxsdです。次に、残りのコンテンツを含む1つの文字列プロパティテキスト、私の、bの、脚注、xml/html)。

私はいくつかの研究を行いましたが、processContentsのように思われますが、どこに置くのか分かりません。

このようになったら、XSD.exeで作成されたオブジェクトに対してこのようにプログラムしたいと思います。

var beginLine = new crosswaybiblePassageVerseunitBeginline(); 
Console.WriteLine((beginLine.Items[0] as crosswaybiblePassageVerseunitBeginlineVersenum).Value); 
Console.Write(beginLine.Text); 

または多分...

var beginLine = new crosswaybiblePassageVerseunitBeginline(); 
Console.WriteLine(beginLine.Versenum.Value); 
Console.Write(beginLine.Text); 

答えて

1

私はどのように設定、それはXsd.exeではからの素敵な出力を提供しますが、あなたは「任意の数を指定することができるようにスキーマをするかわかりません定義と種類を使用して出力における任意の名前」の要素:検証する例えば

<xs:complexType name="AnyChildren"> 
    <xs:sequence> 
     <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" namespace="##any"/> 
    </xs:sequence> 
    <xs:anyAttribute /> 
</xs:complexType> 

<Module> 
    <Title>Hello World</Title> 
    <ProviderType>xyz</ProviderType> 
    <Content /> 
    <MoreContent /> 
</Module> 

使用可能:

<xs:complexType name="Module"> 
    <xs:sequence> 
     <xs:element name="Title" type="xs:string" maxOccurs="1" /> 
     <xs:element name="ProviderType" type="xs:string" minOccurs="1" nillable="false" /> 
     <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" namespace="##any"/> 
    </xs:sequence> 
    <xs:anyAttribute /> 
</xs:complexType> 
関連する問題