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

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

Спасибо.

Но все же остается вопрос как использовать & в регулярных выражениях? Или это в принципе невозможно?
...
Рейтинг: 0 / 0
Как правильно записать && restriction pattern ?
    #38172274
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vincent Vegaкак использовать & в регулярных выражениях?&amp;
...
Рейтинг: 0 / 0
Как правильно записать && restriction pattern ?
    #38172331
Фотография Vincent Vega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Vincent Vegaкак использовать & в регулярных выражениях?&
Да, именно так и вставляет его eclips (если делать схему в XML schema editor), но тогда не валидируется XML связанный с этой схемой.
...
Рейтинг: 0 / 0
Как правильно записать && restriction pattern ?
    #38172805
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vincent Vegaно тогда не валидируется XML связанный с этой схемой.Минимальные XML, XSD в аттач, а текст ошибки в студию
...
Рейтинг: 0 / 0
Как правильно записать && restriction pattern ?
    #38173860
Фотография Vincent Vega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_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
Как правильно записать && restriction pattern ?
    #38174709
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vincent VegaЭлементы LastName и FirstName не проходят валидациюА почему должно если Вы регекспом запретили любые кириллические буквы и амперсанд?
...
Рейтинг: 0 / 0
Как правильно записать && restriction pattern ?
    #38176014
Фотография Vincent Vega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это выражение ([^ыЫъЪэЭ&&а-яА-ЯіІїЇ'\-]*) работает если его протестировать в эклипсовском редакторе или через 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
Как правильно записать && restriction pattern ?
    #38177562
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как правильно записать && restriction pattern ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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