Главная страница
    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.46 MB
Время: 0.057 c
2-1266753699
Human
2010-02-21 15:01
2010.08.27
Аналог блокнота


2-1267712808
Scot Storch
2010-03-04 17:26
2010.08.27
чтение из стрима


15-1271094399
Юрий Зотов
2010-04-12 21:46
2010.08.27
Что будет, если...


2-1266218226
Tonick
2010-02-15 10:17
2010.08.27
Сбор данных о характеристиках ПК


15-1266960610
Юрий
2010-02-24 00:30
2010.08.27
С днем рождения ! 24 февраля 2010 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский