为xml架构定义标记或模式

时间:2010-08-19 10:27:10

标签: regex xsd

我是xml架构的新手。是否有任何可能性来定义该元素以某些字符或符号开头。我的意思是说,<xs:element minOccurs="1" maxOccurs="1" name="Header"> <xs:complexType> <xs:sequence> <xs:sequence> <xs:element maxOccurs="1" minOccurs="1" name="NAME_STUDENTS"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10"/> </xs:restriction> </xs:simpleType> </xs:element>

有没有办法在xml架构中定义一个模式或标签,学生的名字以“P”开头?只有当文本以“P”开头时,架构才会将文本识别为元素NAME_STUDENTS

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解您的问题,但关于name元素限制,您应该查看Xml Schema Regular Expressions

在你的情况下,这将是这样的:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >

    <xs:element name="Header">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="NAME_STUDENTS" type="filtered-students" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="filtered-students">
        <xs:restriction base="xs:string">
            <xs:pattern value="^[P]?"/>
        </xs:restriction>
    </xs:simpleType>

</xs:schema>

...但我必须承认我并不是一个真正的正则英雄,所以你可能想要更精通一些人检查模式。