2016-09-14 8 views
0

Реферирования этого примера использования «JSon: Array»: Converting between JSON and XMLBizTalk - Помещение пространства имен по атрибуту?

Я хочу BizTalk схемы, которая будет построить XML-элемент, как это:

<role json:Array='true'>Admin</role> 

Я попытался добавить схему для моего проекта под названием FakeJSONArraySchema.xsd , а затем по моей основной схеме я сделал «импорт». Обычный способ использования «импорта» - создать «дочернюю запись», а затем изменить «Тип структуры данных». Но устанавливает эту «дочернюю запись» в корневой элемент ссылочной схемы. Мне просто нужен атрибут.

В приведенном выше примере элемент «role» должен находиться в пространстве имен основной схемы.

Если все остальное не работает, я попробую отредактировать .XSD напрямую. Я надеялся, что это можно сделать с помощью графического интерфейса Visual Studio.

См родственный вопрос: Details about the json:Array feature of Newtonsoft.JSON XML to JSON converter

+2

Я немного неясно, что вы пытаетесь сделать, но, чтобы заставить пространства имен атрибутов, которые можно установить в attributeFormDefault = «квалифицированный» в схеме теге XSD или атрибут формы на <хза: attribute> (xsd также должен иметь целевое пространство). – Sprotty

ответ

1

Как Sprotty сказал в своем комментарии, установить атрибут FormDefault или атрибут поля от к Квалифицированные, чтобы получить префикс пространства имен на атрибут.

Attribute FormDefault Attribute Field Form

Пример схемы с FormDefault набора.

<?xml version="1.0" encoding="utf-16"?> 
<xs:schema xmlns="http://james.newtonking.com/projects/json" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" attributeFormDefault="qualified" targetNamespace="http://james.newtonking.com/projects/json" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Root"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Role"> 
      <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base="xs:string"> 
       <xs:attribute name="Array" type="xs:boolean" /> 
       </xs:extension> 
      </xs:simpleContent> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

Однако он не будет использовать префикс пространства имен JSON, а только NS0 по умолчанию. Однако это, надеюсь, не имеет значения, если оно ссылается на правильное пространство имен.

<ns0:Root xmlns:ns0="http://james.newtonking.com/projects/json"> 
    <Role ns0:Array="true">Role_0</Role> 
</ns0:Root> 

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

  • Нет связанных вопросов^_^