Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSD: Расширение стандартных атрибутов схемы / 6 сообщений из 6, страница 1 из 1
07.07.2011, 14:02
    #37341231
Хнык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: Расширение стандартных атрибутов схемы
Здравствуйте.

Как то можно для стандартных типов схемы сделать свои аттрибуты? Например, как в этом примере я для xs:element добавил свой атрибут myattr с каким-то значением.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
             targetNamespace="urn:Справочники.Цены"
             elementFormDefault="unqualified" >
  <xs:complexType name="Цена">
    <xs:sequence>
      <xs:element name="Валюта" default="RUB" myattr="SomeValue">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="RUB"/>
            <xs:enumeration value="USD"/>
            <xs:enumeration value="EUR"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Сумма" type="xs:decimal" default="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

Берегитесь, чтобы кто не прельстил вас. Ибо многие придут под именем Моим, и будут говорить: 'Я Морж', и многих прельстят.
...
Рейтинг: 0 / 0
08.07.2011, 01:09
    #37342337
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: Расширение стандартных атрибутов схемы
Какая цель преследуется?
...
Рейтинг: 0 / 0
08.07.2011, 12:50
    #37343088
Хнык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: Расширение стандартных атрибутов схемы
Расширить стандартные атрибуты для element.

MyNamespace.MyAttr="SomeValue", тоже пойдёт.
...
Рейтинг: 0 / 0
08.07.2011, 13:23
    #37343186
Хнык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: Расширение стандартных атрибутов схемы
В частности, я нашёл следующий xsd:

Код: plaintext
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.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
            xmlns:CO="urn:MyNamespace" 
            targetNamespace="urn:MyNamespace" >
<xsd:annotation>
  <xsd:appinfo>
    <sql:relationship name="CustOrders"
          parent="Sales.Customer"
          parent-key="CustomerID"
          child="Sales.SalesOrderHeader"
          child-key="CustomerID" />
  </xsd:appinfo>
</xsd:annotation>
  
  <xsd:element name="Customer" 
               sql:relation="Sales.Customer" 
               type="CO:CustomerType" />
 
  <xsd:complexType name="CustomerType" >
     <xsd:sequence>
        <xsd:element name="Order" 
                     sql:relation="Sales.SalesOrderHeader"
                     sql:relationship="CustOrders"
                     type="CO:OrderType" />
     </xsd:sequence>
        <xsd:attribute name="CustomerID"   type="xsd:string" /> 
        <xsd:attribute name="SalesPersonID"  type="xsd:string" />
  </xsd:complexType>
  <xsd:complexType name="OrderType" >
     <xsd:attribute name="SalesOrderID" type="xsd:integer" />
     <xsd:attribute name="CustomerID" type="xsd:string" />
  </xsd:complexType>
</xsd:schema>

Здесь для element указывается доп. атрибут sql:relation, который задаётся в пространстве имён "urn:schemas-microsoft-com:mapping-schema".
Не могу найти информации, как это было сделано.
...
Рейтинг: 0 / 0
13.07.2011, 13:12
    #37349612
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: Расширение стандартных атрибутов схемы
Как то можно для стандартных типов схемы сделать свои аттрибуты?
Разрешены лишь атрибуты из объявленных неймспейсов. Просто myAttr не проканает.
Это работает так: xs:element, например, является расширением типа xs:annotated, который является расширением xs:openAttrs.
Вот этот базовый тип и его суть (+ http://www.raleigh.ru/XML/forum/discussion.php?article=c9ho8d%24n19%241@host.talk.ru&;mode=tree]тынц ):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<xs:complexType name="openAttrs">
    <xs:annotation>
      <xs:documentation>
        This type is extended by almost all schema types
        to allow attributes from other namespaces to be
        added to user schemas.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="xs:anyType">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
Сама схема .
...
Рейтинг: 0 / 0
13.07.2011, 18:36
    #37350453
Хнык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSD: Расширение стандартных атрибутов схемы
Спасибо
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSD: Расширение стандартных атрибутов схемы / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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