次の XML があります。
<dict >
<key>key1</key>
<string>bla-bla</string>
<key>key2</key>
<int>123</int>
<key>key3</key>
<string>blah-blah</string>
<!-- key... -->
<!-- string or int tag -->
<!-- the pair repeats several times -->
</dict>
このファイル構造の XSD を作成しようとしていますが、現在、次のコードを使用しています。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Test"
targetNamespace="http://tempuri.org/Test.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/Test.xsd"
xmlns:mstns="http://tempuri.org/Test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name ="objectType">
</xs:complexType>
<xs:complexType name ="stringType" >
<xs:complexContent>
<xs:extension base ="objectType">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name ="intType">
<xs:complexContent>
<xs:extension base ="objectType">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name ="dictType">
<xs:sequence minOccurs ="0" maxOccurs ="unbounded">
<xs:element type ="xs:string" name ="key"/>
<xs:element ref ="object" />
</xs:sequence>
</xs:complexType>
<xs:element name ="object" type ="objectType" abstract ="true"/>
<xs:element name ="string" type ="stringType" substitutionGroup="object" />
<xs:element name ="int" type ="intType" substitutionGroup="object"/>
<xs:element name ="dict" type ="dictType" />
</xs:schema>
このスキーマにより、次の xml を生成できます
<?xml version="1.0" encoding="utf-8"?>
<dict xmlns="http://tempuri.org/Test.xsd">
<key>key1</key>
<string />
<key>key2</key>
<string />
<key>key3</key>
<int />
</dict>
<int>
この段階では、タグとタグを使用してデータを提供する方法が見つかりません<string>
。のようなものを書いているとき<int>1</int>
。エラーメッセージが表示されます。「要素にテキストを含めることはできません。コンテンツ モデルが空です」
<int>
タグのコンテンツを整数で、<string>
タグのコンテンツを文字列で完全に埋めることができるかどうか教えてください。どうやって?
前もって感謝します!