Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как правильно записать && restriction pattern ? / 10 сообщений из 10, страница 1 из 1
02.03.2013, 21:06
    #38172135
Vincent Vega
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
Мне необходимо ограничить ввод в поле только украинскими буквами.
Регулярное выражение которое я написал: [^ыЫъЪэЭ&&а-яА-ЯіІїЇ'\-]*

Если написать схему вот так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    <complexType name="PersonType">
    	<sequence>
    		<element name="LastName">
    			<simpleType>
    				<restriction base="string">
    					<pattern value="[^ыЫъЪэЭ&&а-яА-ЯіІїЇ'\-]*"></pattern>
    				</restriction>
    			</simpleType>
    		</element>
    		<element name="FirstName" type="string"></element>
    	</sequence>
    </complexType>



то схема не валидируется.

Как правильно записать паттерн в схеме?



http://sharavara.com
...
Рейтинг: 0 / 0
02.03.2013, 22:25
    #38172159
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
Vincent VegaМне необходимо ограничить ввод в поле только украинскими буквами.
Код: xml
1.
<pattern value="[а-щьюяА-ЩЬЮєЄіІїЇ'\-]*"></pattern>
...
Рейтинг: 0 / 0
03.03.2013, 01:18
    #38172257
Vincent Vega
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
_Vasilisk_,

Спасибо.

Но все же остается вопрос как использовать & в регулярных выражениях? Или это в принципе невозможно?
...
Рейтинг: 0 / 0
03.03.2013, 02:35
    #38172274
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
Vincent Vegaкак использовать & в регулярных выражениях?&amp;
...
Рейтинг: 0 / 0
03.03.2013, 10:59
    #38172331
Vincent Vega
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
_Vasilisk_Vincent Vegaкак использовать & в регулярных выражениях?&
Да, именно так и вставляет его eclips (если делать схему в XML schema editor), но тогда не валидируется XML связанный с этой схемой.
...
Рейтинг: 0 / 0
04.03.2013, 02:32
    #38172805
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
Vincent Vegaно тогда не валидируется XML связанный с этой схемой.Минимальные XML, XSD в аттач, а текст ошибки в студию
...
Рейтинг: 0 / 0
04.03.2013, 21:06
    #38173860
Vincent Vega
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
_Vasilisk_,

Схема
Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://sharavara.com/Message" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"
	xmlns:tns="http://sharavara.com/Message">

    <complexType name="PersonType">
    	<sequence>
    		<element name="LastName">
    			<simpleType>
    				<restriction base="string">
    					<pattern value="[^ыЫъЪэЭ&amp;&amp;а-яА-ЯіІїЇ'\- ]*"></pattern>
    				</restriction>
    			</simpleType>
    		</element>
    		<element name="FirstName">
    			<simpleType>
    				<restriction base="string">
    					<pattern value="[^ыЫъЪэЭ&amp;&amp;а-яА-ЯіІїЇ'\- ]*"></pattern>
    				</restriction>
    			</simpleType>
    		</element>
    	</sequence>
    </complexType>

    <element name="Application" type="tns:ApplicationType"></element>
    
    <complexType name="ApplicationType">
    	<sequence>
    		<element name="Person" type="tns:PersonType"></element>
    	</sequence>
    </complexType>
</schema>



Хмл созданный по этой схеме:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="UTF-8"?>
<tns:Application xmlns:tns="http://sharavara.com/Message" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://sharavara.com/Message Message.xsd ">
	<tns:Person>
		<tns:LastName>тест</tns:LastName>
		<tns:FirstName>тест</tns:FirstName>
	</tns:Person>
</tns:Application>



Элементы LastName и FirstName не проходят валидацию
...
Рейтинг: 0 / 0
05.03.2013, 15:00
    #38174709
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
Vincent VegaЭлементы LastName и FirstName не проходят валидациюА почему должно если Вы регекспом запретили любые кириллические буквы и амперсанд?
...
Рейтинг: 0 / 0
06.03.2013, 13:55
    #38176014
Vincent Vega
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
Это выражение ([^ыЫъЪэЭ&&а-яА-ЯіІїЇ'\-]*) работает если его протестировать в эклипсовском редакторе или через http://www.regexplanet.com/advanced/java/index.html

Но ок, я могу его переписать согласно документации http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html :
Код: plaintext
[а-яА-ЯіІїЇ'\-&&[^ыЫъЪэЭ]]* 

Теперь схема получается вот такой:
Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://sharavara.com/Message" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"
	xmlns:tns="http://sharavara.com/Message">
    <complexType name="PersonType">
    	<sequence>
    		<element name="LastName">
    			<simpleType>
    				<restriction base="string">
    					<pattern value="[а-яА-ЯіІїЇ'\-&amp;&amp;[^ыЫъЪэЭ]]*"></pattern>
    				</restriction>
    			</simpleType>
    		</element>
    		<element name="FirstName">
    			<simpleType>
    				<restriction base="string">
    					<pattern value="[а-яА-ЯіІїЇ'\-&amp;&amp;[^ыЫъЪэЭ]]*"></pattern>
    				</restriction>
    			</simpleType>
    		</element>
    	</sequence>
    </complexType>

    <element name="Application" type="tns:ApplicationType"></element>
    
    <complexType name="ApplicationType">
    	<sequence>
    		<element name="Person" type="tns:PersonType"></element>
    	</sequence>
    </complexType>
</schema>



и теперь она вообще не валидируется:
Код: plaintext
1.
XSD: The regular expression '[а-яА-ЯіІїЇ'\-&&[^ыЫъЪэЭ]]*' failed to validate at location 16: '[' is invalid in a character class.  Write '\['.

Если записать вот так:
Код: xml
1.
<pattern value="[а-яА-ЯіІїЇ'\-&&[^ыЫъЪэЭ]]*"></pattern>



Получаем такую ошибку:
Код: plaintext
DOM: The entity name must immediately follow the '&' in the entity reference.
...
Рейтинг: 0 / 0
07.03.2013, 16:46
    #38177562
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно записать && restriction pattern ?
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как правильно записать && restriction pattern ? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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