array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified - 爱码网

更多内容请查看:BizTalk动手实验系列目录

                      BizTalk 开发系列

      XML Schema中的命名空间前缀限定包括对元素(Element)或属性(Attribute)的限定,即常见的如“<ns0:root>...</ns0:root>”之类的格式。一般情况下在BizTalk Schema编辑器中设置架构的属性

elementFormDefault /AttributeFormDefault

在该 schema 的目标命名空间中声明的元素的形式。该值必须是下列字符串之一: "qualified" 或 "unqualified"。 默认值为 "unqualified"。
"unqualified" 指示无须通过命名空间前缀限定目标命名空间的元素/属性。
"qualified" 指示必须通过命名空间前缀限定目标命名空间的元素属性。

      另外可以直接在记录、元素、属性的属性窗口设置Form的值.

Form

如果该值是 “unqualified”,则无须通过命名空间前缀限定该元素。
如果该值是 “qualified”,则必须通过命名空间前缀限定该元素。

      Schema中对于声明是可以继承的,但也是可以重写声明的。即如果在架构中声明了ElementFormDefault属性(全局声明)而子元素没有声明Form(局部声明)的话则该元素则继承ElemnetFormDefault属性。如果子元素重新声明了Form属性则该声明在该元素上优先于全局的声明。

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified

         通过以上的设置通常就可以实现对架构,元素或属性的命名空间前缀限定。但在有些情况下虽然设置了Element FromDefault(Attribute一般为属性部声明)的值为UnQualified。但是使用生成实例生成的XML元素或记录还是会带命名空间前缀(如下XML),这种情况一般发生在使用Schema生成向导生成的Schema,从XDR(BizTalk 2002以前使用的Schema格式)转到XSD(BizTalk 2004以后使用的Schema 格式)。

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<ns0:Root DATE="DATE_0" xmlns:ns0="http://schemasample.test"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<ns0:Record> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<ns0:SubRecord NUM="NUM_0"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<ns0:TestField>TestField_0</ns0:TestField> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ns0:SubRecord> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ns0:Record> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ns0:Root> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified

   

     经过测试发现Schema的设置不能应用到子记录或元素的原因是记录的类型为引用类型,并且引用了全局的元素。

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<?xml version="1.0" encoding="utf-16"?> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://orchtest.schema1/" elementFormDefault="unqualified" targetNamespace="http://orchtest.schema1/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<b:schemaInfo standard="XML" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" root_reference="Root" displayroot_reference="Root" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Root"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:sequence> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Record1"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Field1" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Field2" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Record2" type="Record2" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<xs:element minOccurs="1" maxOccurs="1" ref="ExtRecord" /> 

</xs:sequence> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="ExtRecord"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:choice minOccurs="0"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="TestField"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:simpleType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:restriction base="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:simpleType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:choice> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:attribute name="NUM" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType name="Record2"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<b:fieldInfo xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:attribute name="Field" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:complexType> 

 

请注意上图的几个背景部分:

绿色部分 为在架构中声明全局属性即元素不需要命名空间前缀限定
灰色部分 为在Schema编辑器中自定义的Complex Type.
黄色部分 为转换向导生成的类型
粉色部分 为在Root节点引用ExtRecord元素的类型。
特别注意红色部分,如果没有加上红色部分的声明的话在BizTalk编辑器会显示所有元素。即会出现两个ExtRecord节点。

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified

使用Schema生成实例生成的XML数据如下:

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<ns0:Root xmlns:ns0="http://OrchTest.Schema1"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Record1 /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Field1>Field1_0</Field1> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Field2>Field2_0</Field2> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Record2 Field="Field_0" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<ns0:ExtRecord NUM="NUM_0"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<TestField>TestField_0</TestField> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ns0:ExtRecord> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ns0:Root> 

 

    我们再来改变一下Schema(注意,此修改是在XML编辑器进行,而不是在BizTalk的Schema编辑器。右击Schema文件,选择打开方式,在对话框中选择XML编辑器)

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified

更改之后的XML如下:

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<?xml version="1.0" encoding="utf-16"?> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://orchtest.schema1/" elementFormDefault="unqualified" targetNamespace="http://orchtest.schema1/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<b:schemaInfo standard="XML" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" root_reference="Root" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Root"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:sequence> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Record1"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Field1" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Field2" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="Record2" type="Record2" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<xs:element name="ExtRecord"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:choice minOccurs="0"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:element name="TestField"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:simpleType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:restriction base="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:simpleType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:choice> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:attribute name="NUM" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:sequence> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:element> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:complexType name="Record2"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<b:fieldInfo xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:appinfo> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:annotation> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<xs:attribute name="Field" type="xs:string" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:complexType> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</xs:schema>

 

保存Schema。生成实例如下:

 

BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified<ns0:Root xmlns:ns0="http://OrchTest.Schema1"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Record1 /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Field1>Field1_0</Field1> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Field2>Field2_0</Field2> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<Record2 Field="Field_0" /> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<ExtRecord NUM="NUM_0"> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
<TestField>TestField_0</TestField> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ExtRecord> 
BizTalk开发系列(十五) Schema设计之Qualified 与Unqualified
</ns0:Root> 

     经查证。XML Schema中的全局声明必须是唯一的,而全局模式中的每一个声明都自动进入目标名称空间。因此ElementFormDefault的设置不能作用于该元素。

相关文章: