2015-08-10 3 views
0

Я работаю над клиентским приложением (встроенными системами), которое использует формат XML для обмена данными и конфигурации с сервером.Преобразование XML-схемы

Я хочу добавить дополнительную информацию в схему XML, о обработке XML-данных (таких как обработчики или любые пользовательские действия) без каких-либо побочных эффектов на стороне сервера.

Например,

<xs:element name="ethernet"> 
    <xs:complexType> 
     <xs:sequence> 
     <!-- <handler>set_ethernet_address</handler> --> 
      <xs:element name="ip" type="ipType"/> 
      <xs:element name="net_mask" type="ipType"/> 
      <xs:element name="gateway" type="ipType"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

В приведенных выше примерах комментарий представляет, что Ethernet элемент имеет обработчик set_ethernet_address. Эта информация абсолютно не имеет отношения к пользователю на стороне сервера. Более того, этот обработчик не является частью целевого XML-файла. В будущем я планирую разработать генератор исходного кода, который генерирует код приложения на стороне клиента из схемы.

Так мои вопросы,

  1. Могу ли я добавить дополнительную «инструкцию по обработке» в XML-схеме, кроме комментария формат?
  2. Кроме того, я могу преобразовать эту XML-схему в новый файл схемы XML для сервера, удалив клиентскую «инструкцию обработки».

Thanks, Nandkishor.

ответ

0

Рекомендуемый подход заключается в использовании хза: аннотация элемент:

<xs:element name="ethernet"> 
    <xs:annotation> 
    <xs:appInfo source="http://stackoverflow.com/users/2857369/nandkishor-biradar"> 
     <hander>set_ethernet_address</handler> 
    </xs:appInfo> 
    </xs:annotation> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="ip" type="ipType"/> 
      <xs:element name="net_mask" type="ipType"/> 
      <xs:element name="gateway" type="ipType"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
+0

Спасибо, это действительно полезно. Еще один вопрос: могу ли я использовать XSLT для файла схемы? Мне нужно удалить эти аннотации из файла схемы перед тем, как перейти к клиенту. –

+0

Да, XSD - это XML, поэтому вы можете разделить элементы xs: annotation с помощью XSLT. –

Смежные вопросы