.Net Xml Serialize - определение XSD для нескольких пространств имен - PullRequest
1 голос
/ 27 мая 2010

При сериализации объектов .Net был сгенерирован следующий XML:

<?xml version="1.0" encoding="utf-8"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://EPS.WebServices/WebServiceSchema" >
  <Method xmlns="http://EPS.Library/RequestSchema">PackPlacementUpdate</Method>
  <Type xmlns="http://EPS.Library/RequestSchema">PackPlacementUpdate</Type>
</Request>

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

Не изменяя пространство имен классов .Net, есть ли способ создать один файл схемы XSD, а не два?

Спасибо.

1 Ответ

0 голосов
/ 28 мая 2010

Нет!

Схема объявляет targetNamespace; каждая схема определяет элементы и атрибуты в одном пространстве имен.

Кроме того, существует взаимно-однозначное сопоставление между .xsd (определение схемы XML file ) и схемой XML. Вы не можете определить более одной схемы в файле .xsd.

Поэтому, если у вас есть элементы, которые принадлежат нескольким пространствам имен, и если вы хотите определить эти элементы в XML-схеме W3C, то вам нужно несколько файлов .xsd.

...