Главная страница
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.047 c
15-1273645654
uniken1
2010-05-12 10:27
2010.08.27
DoubleBuffer в чужом окне


2-1272971528
Zoom
2010-05-04 15:12
2010.08.27
RxRichEdit и Unicode


2-1271956369
Сергей
2010-04-22 21:12
2010.08.27
Нужна помошь (незнаю как описать)


15-1268978113
oldman
2010-03-19 08:55
2010.08.27
Драйвер для Xerox Phaser 3117 под МЕ


15-1271018147
@!!ex
2010-04-12 00:35
2010.08.27
Lab степень отличия цветов друг от друга