Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.108 c
15-1270539779
Игорь
2010-04-06 11:42
2010.08.27
Yandex Деньги через SMS


2-1268985882
Boortwint
2010-03-19 11:04
2010.08.27
Программирование с использованием строк.


15-1264673292
Vigi
2010-01-28 13:08
2010.08.27
Часы с разными часовыми поясами


2-1270824697
aalleexxaa
2010-04-09 18:51
2010.08.27
записать все содержимое базы данных Access в массивы


10-1166152424
Grain
2006-12-15 06:13
2010.08.27
Excel и Windows 2000