BizTalk - 将命名空间放在属性上?
BizTalk - Putting a namespace on an attribute?
参考这个使用 "json:Array" 的例子:Converting between JSON and XML
我想要 BizTalk 架构来构建这样的 XML 元素:
<role json:Array='true'>Admin</role>
我尝试向我的项目添加一个名为 FakeJSONArraySchema.xsd 的模式,然后在我的主模式上,我做了一个 "imports"。使用 "imports" 的正常方法是创建 "child record",然后将其更改为 "Data Structure Type"。但是将 "child record" 设置为引用模式的根元素。我只需要一个属性。
在上面的示例中,元素 "role" 需要位于主架构的命名空间中。
如果一切都失败了,我会尝试直接编辑 .XSD。我希望这可以使用 Visual Studio 图形界面来完成。
参见相关问题:Details about the json:Array feature of Newtonsoft.JSON XML to JSON converter
正如 Sprotty 在他的评论中所说,将 Attribute FormDefault 或 Attribute Field Form 设置为 Qualified 以获得属性的命名空间前缀。
设置了 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>
参考这个使用 "json:Array" 的例子:Converting between JSON and XML
我想要 BizTalk 架构来构建这样的 XML 元素:
<role json:Array='true'>Admin</role>
我尝试向我的项目添加一个名为 FakeJSONArraySchema.xsd 的模式,然后在我的主模式上,我做了一个 "imports"。使用 "imports" 的正常方法是创建 "child record",然后将其更改为 "Data Structure Type"。但是将 "child record" 设置为引用模式的根元素。我只需要一个属性。
在上面的示例中,元素 "role" 需要位于主架构的命名空间中。
如果一切都失败了,我会尝试直接编辑 .XSD。我希望这可以使用 Visual Studio 图形界面来完成。
参见相关问题:Details about the json:Array feature of Newtonsoft.JSON XML to JSON converter
正如 Sprotty 在他的评论中所说,将 Attribute FormDefault 或 Attribute Field Form 设置为 Qualified 以获得属性的命名空间前缀。
设置了 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>