Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Определение пространства имен по маске / 4 сообщений из 4, страница 1 из 1
10.07.2018, 16:03
    #39672151
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пространства имен по маске
Хочу определить такое:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xs:schema targetNamespace="main">
    <xs:element name="TEST">
        <xs:complexType>
	   <xs:complexContent>
               <xs:anyAttribute namespace="extention:***" processContents="lax"/>
           </xs:complexContent>
       </xs:complexType>
   </xs:element>
</xs:schema>


где *** - маска.

а потом такое:

Код: xml
1.
2.
3.
4.
5.
6.
7.
<xs:schema targetNamespace="extention:EXT1" xmlns:EXT1="extention:EXT1">
    <xs:attribute name="TEST" />
</xs:schema>

<xs:schema targetNamespace="extention:EXT2" xmlns:EXT2="extention:EXT2">
    <xs:attribute name="TEST" />
</xs:schema>


Нельзя в основной схеме перечислить все допустимые пространства, их ассортимент заранее неизвестен, но можно наложить ограничения на URI.

Нужно, чтобы в итоге заработало это:

Код: xml
1.
2.
3.
4.
5.
6.
<root xmlns="main" xmlns:EXT1="extention:EXT1" xmlns:EXT2="extention:EXT2">
    <TEST 
               EXT1:TEST="..." 
               EXT2:TEST="..."
     />
</root>


Возможно такое?
...
Рейтинг: 0 / 0
11.07.2018, 14:37
    #39672596
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пространства имен по маске
AntonariyНельзя в основной схеме перечислить все допустимые пространства, их ассортимент заранее неизвестенПочему не так
Код: xml
1.
<xs:anyAttribute namespace="##other" processContents="lax"/>



Или через
Код: xml
1.
<xsd:extension>

?
...
Рейтинг: 0 / 0
11.07.2018, 16:34
    #39672667
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пространства имен по маске
_Vasilisk_AntonariyНельзя в основной схеме перечислить все допустимые пространства, их ассортимент заранее неизвестенПочему не так
Код: xml
1.
<xs:anyAttribute namespace="##other" processContents="lax"/>

потому что мне не нужны атрибуты из каких попало пространств, мало ли что там объявлено будет. нужно только из набора, определенного маской (префиксом) или еще каким средством.

впрочем, можно с этим вариантом ужиться как с наименьшим злом, шанс появления левой схемы низок.

_Vasilisk_Или через
Код: xml
1.
<xsd:extension>

?extention, расширяя старый тип, создает новый, новый тип должен быть назначен новому элементу, а элемент у меня один и тот же - main:TEST.
...
Рейтинг: 0 / 0
11.07.2018, 22:41
    #39672780
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пространства имен по маске
Antonariyпотому что мне не нужны атрибуты из каких попало пространств, мало ли что там объявлено будет. нужно только из набора, определенного маской (префиксом) или еще каким средством.Тогда могу посоветовать только XSLT валидацию
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Определение пространства имен по маске / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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