Текущий архив: 2010.08.27;
Скачать: CL | DM;
ВнизОбъясните, пожалуйста, насчет синтаксиса XSD Найти похожие ветки
← →
bss (2010-04-13 19:22) [0]Задачка - на XSD описать такие конструкции выходного XML:
1) XML имеет вид:
<PeopleList>
<people>
<name>Александр</name>
<icq>12345</icq>
</people>
<people>
.... bla bla bla ...
</people>
</PeopleList>
Элемент Name внутри People - обязательный.
Элемент ICQ внутри People - не обязательный.
Главный элемент PeopleList должен существовать, но внутри может быть пустой (нет конструкций <people>...</people>)
Как описать эту структуру на XSD?
2) XML имеет вид:
<people place="Москва" icq="12345">Александр</people>
Аттрибут "place" обязательный. Аттрибут "icq" не обязательный. Внутри находится xs:string ("Александр"). Как в этом случае описать такую конструкцию?
← →
Игорь Шевченко © (2010-04-13 19:26) [1]Скачать бесплатный XMLPad, в нем построить схему по имеющемуся XML
← →
bss (2010-04-13 22:22) [2]спасибо.
А в этом XMLPad можно всякие настройки делать? То есть, как видно выше, несколько тонкостей связано именно с тем, что параметр может быть, может не быть. Если я его не включу - то подозреваю XMLPad никогда о нем не узнает. Если же включу - он не сможет отличить ситуацию, когда этот элемент должен быть обязательно от той, когда не обязательно.
← →
xayam © (2010-04-13 23:30) [3]
> Если же включу - он не сможет отличить ситуацию, когда этот
> элемент должен быть обязательно от той, когда не обязательно.
спецификацию не пробовал читать?
http://www.s-networks.ru/4-32.gif...Значение параметра minOccurs равное 0 у элемента comment говорит о том, что он не обязательно будет присутствовать в составе элемента PurchaseOrderType...
← →
bss (2010-04-19 14:10) [4]да читаю я... Но как-то все запутанно. Например, "xs:complexType" - объявляет новый тип, верно? Но ведь объявление нового именно типа не говорит о том, что в данном месте должна быть соответствующая секция в выходном XML-файле?
Есть ли смысл объявлять "xs:complexType" без указания имени? (то есть, потом не сошлешься на этот тип).
Например:
XSD - http://oplot.com/habrahabr/habrahabr.xsd
соответствующий XML - http://oplot.com/habrahabr/example.xml
Там такой элемент:<xs:element name="habra_user">
<xs:annotation>
<xs:documentation>Главный элемент схемы. Описывает пользователя хабра</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element na...
......
какой смысл объявлять "xs:complexType" без имени? Причем, судя по структуре выходного XML это понимается именно как то, что в этом месте должен быть такой вид данных. В других случаях бывает, что "xs:complexType" объявляет именно тип данных, которые в ДРУГОМ месте можно использовать... Типа:
<xs:complexType name="MyType">
bla bla
</xs:complexType>
<xs:element type="MyType" />
То есть, непонятно. То ли "xs:complexType" объявляет ТИП данных, то ли объявляет именно в этом месте само данное...
← →
bss (2010-04-19 14:19) [5]и еще такой вопросец... Куда копать, если я хочу такую логику:
<xs:element name="producton_name" type="xs:string"></xs:element>
<xs:element name="prod_type" type="xs:string"></xs:element>
<xs:element name="attr1" type="xs:string"></xs:element>
<xs:element name="attr2" type="xs:string"></xs:element>
Причем, если prod_type равен допустим "ProdLeft", то обязателен параметр attr1. А если prod_type равен "ProRight", то обязателен параметр с именем attr2.
← →
bss (2010-04-19 17:02) [6]
> http://www.s-networks.ru/4-32.gif
интересный, кстати, пример.
У "comment" стоит MinOccurs в ноль, типа его может не быть. При этом все это обернуто в sequence (последовательность), которая вроде предполагает что все элементы должны быть и должны быть расположены в этом порядке. Или для такого описания будет валидным документ:
<PurchaseOrderType>
<shipto>blabla</shipto>
<shipto>lalala</shipto>
</PurchaseOrderType>
?
← →
xayam © (2010-04-19 21:57) [7]
> Или для такого описания будет валидным документ:
http://www.citforum.ru/internet/xml/scheme/
Страницы: 1 вся ветка
Текущий архив: 2010.08.27;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.061 c