Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML/XSD / 9 сообщений из 9, страница 1 из 1
23.02.2014, 15:26
    #38569833
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Добрый день, форумчане!

вот пытаюсь написать схему для xml файла, при проверке на валидность в NetBeans вылетает куча предупреждений. Если надо прикреплю.

может подскажет кто, что и как, ибо первый опыт работы.
В частности важно чтобы было поле ID как тип ID, и правильно определены extention
Прилагаю код в спойлере и UML диаграмму с наследованием.

Заранее спасибо за потраченное вами время.
Так понимаю косяк с пространством имен =(
XML файл
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
<?xml version="1.0" encoding="UTF-8"?>
<rept:terrarium xmlns:tns="http://www.example.com/terrarium" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.example.com/terrarium 
terrarium.xsd "> 
    <chamelion ID="CH-1254" color="Red-Green" speed-move="32.0" length="12.5" poisonous="false">
        <species>Colorized Chamelion</species>
        <age>1.9</age>
        <weight>37.0</weight>
        <incubation>
            <egg>43</egg>
            <incubation-period>33.0</incubation-period>
        </incubation>
        <food>herbivore</food>
    </chamelion>
    <iguana ID="IG-4391" tail-length="12.5" speed-move="30.0" length="12.5" poisonous="true">
        <species>Iguana Red</species>
        <age>2.0</age>
        <weight>35.0</weight>
        <incubation>
            <egg>40</egg>
            <incubation-period>35.0</incubation-period>
        </incubation>
        <food>omnivore</food>
    </iguana>
    <cobra ID="CO-3019" death-bite="true" speed-shot="0.5" length="225.0" poisonous="false">
        <species>Black Cobra</species>
        <age>2.5</age>
        <weight>8.0</weight>
        <incubation>
            <egg>30</egg>
            <incubation-period>31.0</incubation-period>
        </incubation>
        <food>omnivore</food>
    </cobra>
    <python ID="YP-3674" pressing-force="12.0" speed-shot="0.8" length="217.0" poisonous="true">
        <species>Yellow Python</species>
        <age>3.0</age>
        <weight>10.0</weight>
        <incubation>
            <egg>34</egg>
            <incubation-period>29.0</incubation-period>
        </incubation>
        <food>herbivore</food>
    </python>
    <turtle ID="HT-7823" pet="true" eatable="true">
        <species>Home Turtle</species>
        <age>15.6</age>
        <weight>300.0</weight>
        <incubation>
            <egg>20</egg>
            <incubation-period>54.0</incubation-period>
        </incubation>
        <food>herbivore</food>
    </turtle>
    <turtle ID="ST-4412" pet="true" eatable="true">
        <species>Big Sea Turtle</species>
        <age>12.4</age>
        <weight>478.0</weight>
        <incubation>
            <egg>27</egg>
            <incubation-period>59.0</incubation-period>
        </incubation>
        <food>omnivore</food>
    </turtle>
    <crocodile ID="CC-3244" teeth="68">
        <species>Columbious Crocodile</species>
        <age>1.8</age>
        <weight>70000.0</weight>
        <incubation>
            <egg>15</egg>
            <incubation-period>32.0</incubation-period>
        </incubation>
        <food>omnivore</food>
    </crocodile>
   
</rept:terrarium>




XSD файл
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.example.com/terrarium" 
        xmlns:rept="http://www.example.com/terrarium"> 
    <element name="terrarium" > 
        <complexType> 
            <all> 
                <element name="iguana" type="rept:IguanaType" /> 
                <element name="chamelion" type="rept:ChamelionType"  /> 
                <element name="python" type="rept:PythonType"  /> 
                <element name="cobra" type="rept:CobraType" /> 
                <element name="turtle" type="rept:TurtleType" /> 
                <element name="crocodile" type="rept:CrocodileType"  /> 
            </all> 
        </complexType> 
    </element>   
  <!--Reptile-->
    <complexType name="ReptileType">
        <sequence>
            <element name="species" type="string"/> 
            <element name="ID" type="rept: ID" use="required"/> 
            <element name="age" type="float" /> 
            <element name="weight" type="float" /> 
            <element name="incubation" type="rept: Incubation" /> 
            <element name="food" type="rept: Food" /> 
        </sequence>
        <attribute name="ID" type="rept: ID" use="required"/> 
    </complexType>
     
  <!--Crocodile-->
    <complexType name="CrocodileType">
        <complexContent>			
            <extension base="rept:ReptileType">
            </extension>
            <attribute name="teeth" type="nonPositiveInteger"/> 
        </complexContent>
    </complexType>
    
  <!--Turtle-->
    <complexType name="TurtleType">
        <complexContent>			
            <extension base="rept:ReptileType">
            </extension>
            <attribute name="pet" type="boolean"/> 
            <attribute name="eatable" type="boolean"/> 
        </complexContent>
    </complexType>
   <!--Scale-->  
    <complexType name="ScaleType">
        <complexContent>			
            <extension base="rept:ReptileType">
            </extension>
            <attribute name="length" type="float"/> 
            <attribute name="poisonous" type="boolean"/> 
        </complexContent>
    </complexType>
      <!--Lizard-->
    <complexType name="LizardType">
        <complexContent>			
            <extension base="rept:ScaleType">
            </extension>
            <attribute name="speed-move" type="float"/> 
        </complexContent>
    </complexType>
      <!--Iguana-->
    <complexType name="IguanaType">
        <complexContent>			
            <extension base="rept:LizardType">
            </extension>
            <attribute name="tail-length" type="float"/> 
        </complexContent>
    </complexType>
      <!--Chamelion-->
    <complexType name="ChamelionType">
        <complexContent>			
            <extension base="rept:LizardType">
            </extension>
            <attribute name="color" type="string"/> 
        </complexContent>
    </complexType>
      <!--Snake-->
    <complexType name="SnakeType">
        <complexContent>			
            <extension base="rept:ScaleType">
            </extension>
            <attribute name="speed-shot" type="float"/> 
        </complexContent>
    </complexType>
     <!--Cobra-->
    <complexType name="CobraType">
        <complexContent>			
            <extension base="rept:SnakeType">
            </extension>
            <attribute name="death-bite" type="boolean"/> 
        </complexContent>
    </complexType>
      <!--Python-->
    <complexType name="PythonType">
        <complexContent>			
            <extension base="rept:SnakeType">
            </extension>
            <attribute name="pressing-form" type="float"/> 
        </complexContent>
    </complexType>
   <!--Incubation-->
    <complexType name="Incubation">
        <sequence>
            <element name="egg" type="nonPositiveInteger" /> 
            <element name="incubation-period" type="float" /> 
        </sequence>
    </complexType>   
      <!--Food--> 
    <simpleType  name="Food">
        <restriction base="string">
            <enumeration value="herbivore"/>
            <enumeration value="omnivore"/>
            <enumeration value="carnivore"/>
        </restriction>
    </simpleType>
      <!--ID-->
    <simpleType name="ID"> 
        <restriction base="ID"> 
            <pattern value="[A-Z]{2}[-]{1}[0-9]{4}"/> 
        </restriction> 
    </simpleType> 
   </schema> 



иерархия наследования
...
Рейтинг: 0 / 0
23.02.2014, 20:29
    #38569923
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Прочитать эту кучу предупреждений, я так понимаю, вы не догадались.

Почему все attribute за пределами extention?
...
Рейтинг: 0 / 0
23.02.2014, 20:34
    #38569929
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Код: xml
1.
2.
3.
<!--Crocodile-->

<attribute name="teeth" type="nonPositiveInteger"/>

Количество зубов у крокодила: от нуля и меньше.

Это не террариум, это паноптикум какой-то.
...
Рейтинг: 0 / 0
24.02.2014, 00:03
    #38569988
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Antonariy,
про крокодила, да.. смешно получилось) но не суть
читаю предупреждения, в принципе разобрался со всем, кроме атрибутов
почему они должны быть в extention?
они же не присущи классу родителю.
...
Рейтинг: 0 / 0
24.02.2014, 00:21
    #38569994
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Разобрался, тема закрыта
Спасибо, Antonariy, за подсказку про атрибуты
Хотя если загляните, объясните ,если не затруднит: почему же все-таки они должны быть в теге extention, потому что я так понима, что в этом теге находится должны элементы или атрибуты которые наследуются от родителя.
...
Рейтинг: 0 / 0
24.02.2014, 07:45
    #38570043
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Потому что таков синтаксис. Extention переводится на русский как "расширение". То, что находится внутри расширения, расширяет базовый тип.
...
Рейтинг: 0 / 0
24.02.2014, 08:39
    #38570056
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Antonariy,
спасибо, ясно) буду знать
Подскажите, пожалуйста,еще вот что:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<element name="terrarium" > 
        <complexType> 
            <all> 
                <element name="iguana" type="rept:IguanaType" /> 
                <element name="chamelion" type="rept:ChamelionType"  /> 
                <element name="python" type="rept:PythonType"  /> 
                <element name="cobra" type="rept:CobraType" /> 
                <element name="turtle" type="rept:TurtleType" /> 
                <element name="crocodile" type="rept:CrocodileType"  /> 
            </all> 
        </complexType> 
    </element>   



Тег "all" как я понял , означает то, что все элементы заключенные в него могут повторяться лишь один раз , но в любой последовательности.
Я пытался нарыть что-нибудь на просторах интернета, и не сильно получилось..Глупо звучит, конечно, но как есть(
какой тег можно использовать чтобы эти элементы можно было использовать любое количество раз , в любой последовательности?
Спасибо
...
Рейтинг: 0 / 0
24.02.2014, 09:59
    #38570112
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
...
Рейтинг: 0 / 0
24.02.2014, 13:44
    #38570422
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML/XSD
Antonariy,
благодарствую Вам за потраченное время =)
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML/XSD / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]