在我的XML模式定义中,我试图将属性的值限制为0到100之间的整数。

关于下面的示例模式,我希望属性“ attr” on element“ root”具有此限制。为此,我定义了一个简单的“百分比”,并将其设置为“ attr”的“类型”。

但是,我的XML架构编辑器(VS 2008)将属性标记为有问题:“键入'百分比'不被声明或不是简单的类型”。

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" id="test" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://testtttt">
  <xs:simpleType name="Percentage">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="100"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="root">
    <xs:complexType>
      <xs:attribute name="attr" type="Percentage" use="optional" />
    </xs:complexType>
  </xs:element>

有帮助吗?

解决方案

看来您缺少架构root元素上的名称空间声明:

xmlns="http://testtttt"

因此类型参考是无效的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top