XSD验证 - 正则表达式

时间:2014-02-02 00:16:43

标签: xml regex xsd xsd-validation

我对XSD真的是“noob”,但我正在尽我所能。

我有这个XML:

<nombre_completo xmlns:xsi="xxxx "xsi:noNamespaceSchemaLocation="nombre_completo.xsd">
  <nombre>Jame Ruiz</nombre>
  <apellido1>Sancho</apellido1>
  <apellido2>Vera</apellido2>
</nombre_completo>

这个XSD:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="nombre_completo">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="nombre" type="verificar_nombre"/>
        <xs:element name="apellido1" type="xs:string"/>
        <xs:element name="apellido2" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="verificar_nombre">
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z]*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

我想要它来验证名称部分。以一个例子组成的名字:Miguel Angel,Jaime Ruiz。或者只是一个单一的名字,如“拉蒙”或“约翰”。

我试过了:

[a-zA-Z]* [a-zA-Z]? 

但没有。

1 个答案:

答案 0 :(得分:1)

[a-zA-Z]* [a-zA-Z]可以接受任何内容和前面的一个字母。  所以你需要这样的东西

[a-zA-Z]+ [a-zA-Z]*

这将给出任何字母组合但不能为空

 [a-zA-Z]+

加上这将给你空或任何字母组合。

[a-zA-Z]*