Господа! Подскажите, как в схеме описать элемент, который может содержать или элементы или текст?
С элементами всё понятно, но о тексте ничего не нашёл.
<xs:element name="name1">
<xs:complexType>
<xs:choice>
<xs:element ref="name2"/>
<xs:element ref="name3"/>
<Здесь может быть текст/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="name1">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name2" type="xs:string"/>
<xs:element name="name3" type="xs:string"/>
<xs:element name="name4" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Я думаю, что невозможно заставить текст быть после детей.
В примере наверху текст может быть перемешан с детьми.
<name1>
Text text <name2>Name2 text</name2>.
More text <name3>Name3 text</name3>
blah blah<name4>2002-07-20</name4>.
</name1>
Здравствуйте alexku, Вы писали:
A>Господа! Подскажите, как в схеме описать элемент, который может содержать или элементы или текст?
A>С элементами всё понятно, но о тексте ничего не нашёл.
A>A><xs:element name="name1">
A> <xs:complexType>
A> <xs:choice>
A> <xs:element ref="name2"/>
A> <xs:element ref="name3"/>
A> <Здесь может быть текст/>
A> </xs:choice>
A> </xs:complexType>
A></xs:element>
A>
Здравствуйте a70, Вы писали:
Это, к сожалению не то, что я хотел получить. <xs:complexType mixed="true"> решает проблему наличия текста в элементе, причём текст может чередоваться с дочерним элементом в любом порядке. Но мне хотелось узнать, можно ли через схему определить элемент так, чтобы он содержал либо только текст, либо только дочерний элемент.
A>>A>><xs:element name="name1">
A>> <xs:complexType>
A>> <xs:choice>
A>> <xs:element ref="name2"/>
A>> <xs:element ref="name3"/>
A>> <Здесь может быть текст/>
A>> </xs:choice>
A>> </xs:complexType>
A>></xs:element>
A>>
Да не заметил...
Основываясь на моем знании XSD я думаю, что такое описать невозможно.
Можно запросить:
Пустой элемент, элемент с детьми, элемент с текстом и детьми или элемент просто с текстом.
У всех элементов могут быть атрибуты.
А нельзя текст засунуть в специальный "третий" элемент a-la "<description>...</description>" ?
Здравствуйте alexku, Вы писали:
A>Здравствуйте a70, Вы писали:
A>Это, к сожалению не то, что я хотел получить. <xs:complexType mixed="true"> решает проблему наличия текста в элементе, причём текст может чередоваться с дочерним элементом в любом порядке. Но мне хотелось узнать, можно ли через схему определить элемент так, чтобы он содержал либо только текст, либо только дочерний элемент.
A>>>A>>><xs:element name="name1">
A>>> <xs:complexType>
A>>> <xs:choice>
A>>> <xs:element ref="name2"/>
A>>> <xs:element ref="name3"/>
A>>> <Здесь может быть текст/>
A>>> </xs:choice>
A>>> </xs:complexType>
A>>></xs:element>
A>>>