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

вот пытаюсь написать схему для 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
XML/XSD
    #38569923
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитать эту кучу предупреждений, я так понимаю, вы не догадались.

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

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

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

Это не террариум, это паноптикум какой-то.
...
Рейтинг: 0 / 0
XML/XSD
    #38569988
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,
про крокодила, да.. смешно получилось) но не суть
читаю предупреждения, в принципе разобрался со всем, кроме атрибутов
почему они должны быть в extention?
они же не присущи классу родителю.
...
Рейтинг: 0 / 0
XML/XSD
    #38569994
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался, тема закрыта
Спасибо, Antonariy, за подсказку про атрибуты
Хотя если загляните, объясните ,если не затруднит: почему же все-таки они должны быть в теге extention, потому что я так понима, что в этом теге находится должны элементы или атрибуты которые наследуются от родителя.
...
Рейтинг: 0 / 0
XML/XSD
    #38570043
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что таков синтаксис. Extention переводится на русский как "расширение". То, что находится внутри расширения, расширяет базовый тип.
...
Рейтинг: 0 / 0
XML/XSD
    #38570056
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
XML/XSD
    #38570112
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
XML/XSD
    #38570422
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,
благодарствую Вам за потраченное время =)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML/XSD
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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