`

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次,这样就可以保证数据中有最短合法路径,且对路径长度没有限制了。

分享到:
评论

相关推荐

    Xsd的使用命令

    在文件名列表中,“decfg.xsd”是一个具体的XSD文件,很可能在博文中作为示例来讲解。这个文件可能是配置文件的模式定义,包含了对XML配置文件结构和数据类型的约束。开发者可以使用这个XSD文件来检查XML配置文件...

    如何定义Xsd文件及XSD的解释

    例如,`&lt;xs:element name="color" type="xs:string" default="red" fixed="red" /&gt;`定义了一个名为`color`的元素,其数据类型为字符串,有默认值`red`,并且该值被固定为`red`,意味着XML文档中的`color`元素只能是`...

    xml dtd xsd 标准格式

    这个XSD定义了一个`book`元素,它包含`title`、`author`和`year`三个子元素,`title`和`author`都是字符串类型,而`year`则必须是符合XML日期时间标准的年份。 3. 使用和比较:DTD和XSD都可以用来验证XML文档是否...

    XSD学习笔记

    这个例子中,`letter` 元素的值必须是一个小写字母。 综上所述,XML Schema Definition (XSD) 是一种非常强大的工具,它不仅能够帮助开发人员定义 XML 文档的结构,还能提供数据类型检查、值域限制等功能,从而提高...

    xsd的基本定义

    XSD(XML Schema Definition)是XML的一个重要标准,用于定义XML文档的结构和数据类型。它为XML提供了一种形式化的、严格的方式来描述文档中可能包含的元素、属性及其关系,确保XML文档的一致性和有效性。 1. **...

    xsd通过java验证科学计数法

    在这个XSD片段中,我们定义了一个`simpleType` `scientificNumber`,它基于`xs:string`并使用`xs:pattern`来限制值必须匹配科学计数法的正则表达式。 接下来,我们在XML文档中引用这个XSD,并使用定义的`...

    web.xml中配置过滤器

    在 Java Servlet 编程中,过滤器是一个非常重要的概念,它允许开发者截取和修改进入一个 Servlet 或 JSP 页面的请求或从一个 Servlet 或 JSP 页面发出的响应。在 web.xml 文件中配置过滤器是实现这个功能的关键一...

    xml学习笔记有助于对 schema学习,介绍了schema的基础知识

    - **fixed**:指定一个固定的值,该值不能被更改。 对于元素,默认值仅在元素为空时生效;对于属性,默认值仅在属性未指定时生效,并且`fixed`和`default`不能同时使用。 #### 六、全局元素与全局属性 **全局元素...

    Enterpsise Shemale pattern

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

    spring_MVC源码

    -- 这里在配成spring,下边也要写一个名为spring-servlet.xml的文件,主要用来配置它的controller --&gt; 19. &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; 20. &lt;/servlet-mapping&gt; 21. &lt;welcome-file-list&gt; 22. ...

    idea搭建一个简单的servlet

    在本文中,我们将详细介绍如何使用IntelliJ IDEA(简称Idea)从零开始搭建一个简单的Servlet项目,并实现一个名为"Helloservlet"的示例。Servlet是Java Web开发中的核心组件,它允许我们处理HTTP请求并返回响应。...

    Struts2Action处理中文乱码

    在Struts2的配置文件`structs.xml`中,你可以添加一个常量配置来指定请求和响应的默认编码格式。例如,如果你的项目中中文字符采用GBK编码,可以在`structs.xml`中添加以下代码: ```xml ``` 这行代码告诉Struts2...

    XML Schema

    例如,`&lt;xsd:element&gt;`标签用于声明一个元素,而`&lt;xsd:complexType&gt;`则用于定义包含属性和子元素的复杂类型。 在复杂类型(complexType)中,可以定义具有属性和子元素的数据结构。`ref`属性用于引用已定义的类型,...

    capec_latest.zip

    CAPEC(Common Attack Pattern Enumeration and Classification,通用攻击模式枚举与分类)是信息安全领域的一个重要概念,它由美国计算机紧急响应小组(CERT)和软件工程研究所(SEI)共同维护,用于标准化描述、...

    使用Springmvc创建一个HelloWorld.zip

    在本文中,我们将深入探讨如何使用Spring MVC框架创建一个简单的"Hello World"应用程序。Spring MVC是Spring框架的一个组件,专门用于构建Web应用程序。它提供了一种模型-视图-控制器(MVC)架构,使开发者可以更...

    xml-wsdl基础知识

    - 元素替换允许在一个文档中使用其他元素代替一个元素。 - **3.9.2 阻止元素替换** - 通过`block`属性可以阻止元素被替换。 - **3.9.3 使用substitutionGroup** - `substitutionGroup`属性用来定义可以替换一个...

    一个在线报名系统

    &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;...

    J2EE常见技术问题总结

    在 Web 开发中,有时候我们需要在 JavaScript 中打开一个新的窗口,并且能够与这个新窗口的父窗口进行交互。 ```javascript // 打开新窗口 var newWindow = window.open('newPage.html', '_blank'); // 获取父窗口...

Global site tag (gtag.js) - Google Analytics