`

xsd中如何重复一个pattern

阅读更多

在XSD中,需要定义一个安装路径的数据类型,要求如下:

1. 使用斜线/分割路径,路径开头不能有斜线"/",路径中间不允许有空格,路径末尾可以有斜线,

   形如: xxx/yy.yy/zz_zz/

 

解决办法:

1. 因为路径可能很长,但是他有规律,即我们首相匹配最短的一段,抽象出正则表达式:

 [^/\s](a-zA-Z0-9_.]+[/]?

 

2. 使用xsd中的xsd:pattern来定义一个验证表达式,并且可以重复1中得正则式去做验证。

 

匹配最短路径的正则式我们已经写出来了,那么如何在xsd中重复使用这个式子去循环匹配后面的路径呢?

通过查找网上资料发现,在xsd中可以这么写,通过小括号把正则式括起来,然后添加上重复要求的字符就可以了,看最终的定义:

 

   <!-- The definition of a install path  -->

    <xsd:simpleType name="installPathType">
        <xsd:annotation>
            <xsd:documentation>
                The install path of the package element.
                It must not be empty.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:pattern value="([^/\s][a-zA-Z0-9_.]+[/]?)+"/>
        </xsd:restriction>
    </xsd:simpleType>

 我们使用+指示至少匹配1次,这样就可以保证数据中有最短合法路径,且对路径长度没有限制了。

分享到:
评论

相关推荐

    Enterpsise Shemale pattern

    Enterpsise Enterpsise Enterpsise Enterpsise Enterpsise XSD定义指南 总共2部分

    用Struts2新建一个应用的方法步骤

    File——new——Web Project,在Project Name中输入一个合法的名字。例如:struts2 2. 单击采单Window——Preference——Java——Installed JREs选中jdk1.6,如果没有单击右边的ADD添加,在MyEclipse Blue Edition...

    一个在线报名系统

    &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"&gt;...

    Axsis and XFire Demo src code

    一 使用Axis和XFire发布Web Service 1.1 准备工作 Axis主页: http://ws.apache.org/ Axis下载:http://archive.apache.org/dist/ws/ XFire主页:http://xfire.codehaus.org/ XFire下载:...

    asp.net知识库

    [ASP.NET 2.0]PageParser.GetCompiledPageInstance中存在一个Bug 如何在DotNet 2的登录组件中检索用户的锁定状态及解锁? ASP.NET 2.0, 想说爱你不容易 SqlDataSource WEB控件:当DeleteCommandType= 遭遇 ASP.NET ...

    最简化velocity的web工程

    &lt;url-pattern&gt;*.vm&lt;/url-pattern&gt; &lt;servlet-name&gt;hello &lt;servlet-class&gt;com.meiyoudao.velocity.HelloVelocity&lt;/servlet-class&gt; &lt;servlet-name&gt;hello &lt;url-pattern&gt;/hello&lt;/url-pattern&gt; ...

    serverlet4Json

    serverlet Json commons-beanutils-1.7.0.jar commons-collections-3.2 .jar commons-lang-2.4.jar commons-logging.jar ezmorph-1.0.6.jar json-lib-2.2.3-jdk15.jar ... &lt;url-pattern&gt;/&lt;/url-pattern&gt; &lt;/web-app&gt;

    springweb3.0MVC注解(附实例)

    web.xml 中定义了一个名为 annomvc 的 Spring MVC 模块,按照 Spring MVC 的契约,需要在 WEB-INF/annomvc-servlet.xml 配置文件中定义 Spring MVC 模块的具体配置。annomvc-servlet.xml 的配置内容如下所示: ...

    cas 配置client 1.0 &2.0 及proxy DEMO 说明

    &lt;url-pattern&gt;/index.jsp&lt;/url-pattern&gt; &lt;!-- SingleSignOutHttpSessionListener LISTENER --&gt; org.jasig.cas.client.session.SingleSignOutHttpSessionListener &lt;welcome-file&gt;index.jsp ...

    基于MyEclipse搭建maven+springmvc整合图文教程(含源码0

    使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring...

    struts项目搭建

    网上有说需要这个又有说不需要这个,需要根据实际情况来定,实在不行就自己一个一个加,先从struts的core包开始,如果缺少jar包启动的时候就会报错,缺哪个加哪个。 2、打开MyEclipse(我用的是6.5)新建Web工程 ...

    基于EXT SSI的简单树实现

    一个基于EXT实现的树,先上图。 动态加载加右键菜单。 希望拿到可以跑起来看看效果的,需要按以下步骤做。 1 安装oracle,这个例子只做了oracle版本,如果需要,后期可以加上mysql版本,呵呵。 2 运行建用户及表...

    生活轨迹SSH服务端

    &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;!-- Character Encoding filter --&gt; &lt;!-- Character Encoding filter --&gt; &lt;filter-name&gt;encodingFilter &lt;filter-class&gt;org.springframework.web.filter....

    Nginx安装包

    为了完成测试,我先在IndexController中添加了两个简单方法,一个是登录方法,一个是进入用户中心方法。需要注意的是如果要往redis中存入对象,则需要改对象序列化才能存入。我这里为了方便,就用fastjson将对象转为...

    cms后台管理

    1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中 解压缩jeecms-3.0.2-final-src,在src文件夹下会看到有三个压缩文件,如果只想进行普通的二次开发,可以只导入cms这...

    Spring MVC 入门实例

    配置 DispatcherServlet (servlet 标签), 它是一个 Java Servlet 程序. 我们将它命名为 ideawu. 然后我们再配置 Servlet 映射(servlet-mapping 标签), 也就是你希望哪些请求被DispatcherServlet处理. 这里, 我们设置...

    springmybatis

    请注意,这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应() 重写测试代码 程序代码 程序代码 public static void main(String[] args) { SqlSession session = ...

Global site tag (gtag.js) - Google Analytics