在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次,这样就可以保证数据中有最短合法路径,且对路径长度没有限制了。
相关推荐
在文件名列表中,“decfg.xsd”是一个具体的XSD文件,很可能在博文中作为示例来讲解。这个文件可能是配置文件的模式定义,包含了对XML配置文件结构和数据类型的约束。开发者可以使用这个XSD文件来检查XML配置文件...
例如,`<xs:element name="color" type="xs:string" default="red" fixed="red" />`定义了一个名为`color`的元素,其数据类型为字符串,有默认值`red`,并且该值被固定为`red`,意味着XML文档中的`color`元素只能是`...
这个XSD定义了一个`book`元素,它包含`title`、`author`和`year`三个子元素,`title`和`author`都是字符串类型,而`year`则必须是符合XML日期时间标准的年份。 3. 使用和比较:DTD和XSD都可以用来验证XML文档是否...
这个例子中,`letter` 元素的值必须是一个小写字母。 综上所述,XML Schema Definition (XSD) 是一种非常强大的工具,它不仅能够帮助开发人员定义 XML 文档的结构,还能提供数据类型检查、值域限制等功能,从而提高...
XSD(XML Schema Definition)是XML的一个重要标准,用于定义XML文档的结构和数据类型。它为XML提供了一种形式化的、严格的方式来描述文档中可能包含的元素、属性及其关系,确保XML文档的一致性和有效性。 1. **...
在这个XSD片段中,我们定义了一个`simpleType` `scientificNumber`,它基于`xs:string`并使用`xs:pattern`来限制值必须匹配科学计数法的正则表达式。 接下来,我们在XML文档中引用这个XSD,并使用定义的`...
在 Java Servlet 编程中,过滤器是一个非常重要的概念,它允许开发者截取和修改进入一个 Servlet 或 JSP 页面的请求或从一个 Servlet 或 JSP 页面发出的响应。在 web.xml 文件中配置过滤器是实现这个功能的关键一...
- **fixed**:指定一个固定的值,该值不能被更改。 对于元素,默认值仅在元素为空时生效;对于属性,默认值仅在属性未指定时生效,并且`fixed`和`default`不能同时使用。 #### 六、全局元素与全局属性 **全局元素...
Enterpsise Enterpsise Enterpsise Enterpsise Enterpsise XSD定义指南 总共2部分
-- 这里在配成spring,下边也要写一个名为spring-servlet.xml的文件,主要用来配置它的controller --> 19. <url-pattern>*.do</url-pattern> 20. </servlet-mapping> 21. <welcome-file-list> 22. ...
在本文中,我们将详细介绍如何使用IntelliJ IDEA(简称Idea)从零开始搭建一个简单的Servlet项目,并实现一个名为"Helloservlet"的示例。Servlet是Java Web开发中的核心组件,它允许我们处理HTTP请求并返回响应。...
在Struts2的配置文件`structs.xml`中,你可以添加一个常量配置来指定请求和响应的默认编码格式。例如,如果你的项目中中文字符采用GBK编码,可以在`structs.xml`中添加以下代码: ```xml ``` 这行代码告诉Struts2...
例如,`<xsd:element>`标签用于声明一个元素,而`<xsd:complexType>`则用于定义包含属性和子元素的复杂类型。 在复杂类型(complexType)中,可以定义具有属性和子元素的数据结构。`ref`属性用于引用已定义的类型,...
CAPEC(Common Attack Pattern Enumeration and Classification,通用攻击模式枚举与分类)是信息安全领域的一个重要概念,它由美国计算机紧急响应小组(CERT)和软件工程研究所(SEI)共同维护,用于标准化描述、...
在本文中,我们将深入探讨如何使用Spring MVC框架创建一个简单的"Hello World"应用程序。Spring MVC是Spring框架的一个组件,专门用于构建Web应用程序。它提供了一种模型-视图-控制器(MVC)架构,使开发者可以更...
- 元素替换允许在一个文档中使用其他元素代替一个元素。 - **3.9.2 阻止元素替换** - 通过`block`属性可以阻止元素被替换。 - **3.9.3 使用substitutionGroup** - `substitutionGroup`属性用来定义可以替换一个...
<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">...
在 Web 开发中,有时候我们需要在 JavaScript 中打开一个新的窗口,并且能够与这个新窗口的父窗口进行交互。 ```javascript // 打开新窗口 var newWindow = window.open('newPage.html', '_blank'); // 获取父窗口...