Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Объясните, пожалуйста, насчет синтаксиса 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.059 c
4-1234435898
Fran
2009-02-12 13:51
2010.08.27
Как узнать имя пользователя терминальной программы?


15-1263742298
@!!ex
2010-01-17 18:31
2010.08.27
Петиция Delphi for Mac OS


15-1263939469
Маша
2010-01-20 01:17
2010.08.27
Странная задачка


15-1275458009
pleasure
2010-06-02 09:53
2010.08.27
варианты справочников


15-1267824608
Юрий
2010-03-06 00:30
2010.08.27
С днем рождения ! 6 марта 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский