文档章节

对XSD schema文件中elementFormDefault属性的理解

 冷小菜
发布于 2014/12/13 14:07
字数 392
阅读 12
收藏 1

Schema中的elementFormDefault

elementFormDefault取值:qualified 或者 unqualified

 

http://www.velocityreviews.com/forums/t292290-xsd-what-is-elementformdefault-qualified-for.html这个网站,发现Boris的回答:

All"qualified" elements and attributes are in the targetNamespace of the
schema and all "unqualified" elementsand attributes are in no namespace.
All global elements and attributes are qualified.

 

意思是这样的:

1、在xml中,所有引用xsd的全局的元素都必须加上命名空间的前缀

(例如xmlns:aa=http://www.example.org/classroom,全局元素都得加上aa)。

2、非全局的元素当设置为qualified时,必须添加命名空间的前缀。

3、非全局的元素当设置为unqualified时,不必也不能添加前缀。

 

下面是一个简单的例子:

a.  当设置为unqualified时,user为全局元素(可作为根元素)必须添加前缀,非全局元素

(id,name)不必添加前缀。



b.  当设置为qualified时,所有的元素都必须添加前缀。



其实elementFormDefault的qualified/unqualified还与schema的设计模式有关系,目前常用的有Russian Roll , Salami Slice , Venetian Blind

详细及最佳实践可以参照:http://www.xfront.com/GlobalVersusLocal.html#BestPractice

 

Salami Slice这种schema的设计模式,将所有的元素设置为全局元素,设置不设置elementFormDefault是没有任何意义的,文章的开通说过,所有的全局元素必须添加前缀。

http://www.xfront.com/GlobalVersusLocal.html#BestPractice

上网站中提到的Venetian Blind的优势之一:

UseelementFormDefault to act as a switch for controlling namespaceexposure - if you want element namespaces exposed in instance documents, simplyturn the elementFormDefault switch to "on" (i.e, setelementFormDefault= "qualified"); if you don't want elementnamespaces exposed in instance documents, simply turn the elementFormDefaultswitch to "off" (i.e., setelementFormDefault="unqualified").

 

 

 

 


本文转载自:http://blog.csdn.net/lmj623565791/article/details/12655781

粉丝 2
博文 63
码字总数 0
作品 0
海淀
私信 提问
axis2写的ws,用Stub方式能接收到数据,用RPC方式却不行

用axis2写的一个复合数据调用,客户端发出请求(SmsSendResult对象,包含3个属性),服务端用RPC方式接收不到数据,用Stub方式却没问题,代码如下 客户端: RPCServiceClient serviceClient...

dingheng
2011/07/08
1K
0
xsd 文件中 complexType的子元素的长度限制

xml文件如下: qiu tina xsd文件如下: 我的问题是对firstname 和 lastname的字符长度进行控制,比如firstname长度不能大于10,lastname长度不能大于30,这样xsd文件要怎么写呢? 我现在有一...

begoodluck
2012/06/02
1K
1
XMLBeans 多个类型xml文件打包合并

XmlBeans 方便的使操作xml 面向了对象,稍微看一下文档即可知道怎么使用他.不过官方提供的sample 只是针对单个xml,xsd文件的(比如,读取,写入,打包)。通过例子我们知道如果有一个xml文档和...

王全
2009/03/31
1K
1
spring源码学习之:xml标签扩展配置例子

在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的 时候,会显得非常笨拙。一般的做法会用原生态的方式...

无信不立
2016/08/19
0
0
jaxb 解析xsd的时候出现相同的标签怎样处理

求大神啊

那时花开
2013/09/02
192
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
15
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
5
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.4K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部