我有这个现有的XSD,并且它试图将值限制为URL,但它不起作用。 id为空,文档仍然有效。当我输入任何文本时,它也会验证。
<xsd:schema xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/2005/Atom" elementFormDefault="qualified" attributeFormDefault="unqualified">
...
<xsd:complexType name="feedType">
<xsd:choice minOccurs="3" maxOccurs="unbounded">
<xsd:element name="id" type="atom:idType" minOccurs="1" maxOccurs="1"/>
...
<xsd:complexType name="idType">
<xsd:annotation>
<xsd:documentation>
The Atom id construct is defined in section 4.2.6 of the format spec.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:anyURI">
<xsd:attributeGroup ref="atom:commonAttributes"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
............
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/Atom ../XMLschemas/atom/2005/v/0.2/atom.xsd">
<id>https://mydomain.com</id>
答案 0 :(得分:1)
anyURI
也允许相对URI,而afaik空字符串是有效的相对URI。您可以添加pattern
方面以要求“://”更接近您想要的内容。
正如spec所说,
......在实践中,[anyURI]定义只是非常适度 最低限度符合处理者的义务。