Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проверка одного элемента в зависимости от второго / 5 сообщений из 5, страница 1 из 1
08.08.2012, 14:09
    #37908891
Andrei Fomichev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка одного элемента в зависимости от второго
Возникла такая задача
необходимо в XSD ограничить значения одного элемента ( адреса) в зависимости от значений другого элемента ( типа адреса)
например, если тип- телефон, то адрес должен быть вида +79151112233, если тип емайл, то email@mail.ru
Вопрос - как ?
вот так ограничивает только телефоны, но при этом емайлы отваливаются - для них другое ограничение должно быть, проверка на наличие собачки и точки и отсутствие пробелов.
Куда вставить это ограничение, чтобы телефоны не отваливались ?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<complexType name="contact">
        <sequence>
            <element name="method" minOccurs="1" maxOccurs="1">
                <simpleType>
                    <restriction base="string">
                        <enumeration value="PHONE"></enumeration>
                        <enumeration value="EMAIL"></enumeration>
                    </restriction>
                </simpleType>
            </element>
            <element name="address" minOccurs="1" maxOccurs="1">
                <simpleType>
                     <restriction base="string">
                        <minLength value="3"/>
                        <maxLength value="200"/>
                        <pattern value="\+[0-9]{11}"/>
                    </restriction>
                </simpleType>
            </element>
        </sequence>
    </complexType>
...
Рейтинг: 0 / 0
08.08.2012, 14:41
    #37908955
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка одного элемента в зависимости от второго
Можно чтобы для address проверялось несколько паттернов, но чтобы один в зависимости от выбранного пункта enumeration — нельзя.
...
Рейтинг: 0 / 0
08.08.2012, 15:11
    #37909036
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка одного элемента в зависимости от второго
Andrei Fomichevнеобходимо в XSD ограничить значения одного элемента ( адреса) в зависимости от значений другого элемента ( типа адреса)Невозможно
...
Рейтинг: 0 / 0
08.08.2012, 15:16
    #37909043
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка одного элемента в зависимости от второго
Но можно сделать так
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<xsd:element name="address">
  <xsd:complexType>
    <xsd:choice>
      <xsd:element name="email" type="EMailType"/>
      <xsd:element name="phone" type="PhoneType"/>
    </xsd:choice>
  </xsd:complexType>
</xsd:element>
...
Рейтинг: 0 / 0
08.08.2012, 15:50
    #37909128
Andrei Fomichev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка одного элемента в зависимости от второго
а если их через UNION обьеденить и этот UNION проверять ? тоже не получится ?
как-то может вот так
Код: xml
1.
2.
    <union memberTypes="method address" />
                                <pattern value="PHONE\+[0-9]{11}|EMAIL.*\@.*\..*"/>


только куда это вставлять ? и в XML документе должен быть этот елемент или это просто проверка может быть ?
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проверка одного элемента в зависимости от второго / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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