Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xsd 我可以要求XML属性具有值吗?_Xsd_Xml Validation - Fatal编程技术网

Xsd 我可以要求XML属性具有值吗?

Xsd 我可以要求XML属性具有值吗?,xsd,xml-validation,Xsd,Xml Validation,这是我想在模式中定义的XML(部分)。我已经为元素的name属性添加了唯一约束 <parameters> <add name="one" value="1" /> <add name="two" value="2" /> </parameters> 但是我不知道如何预防。我已经尝试了以下模式,但并不荣幸: <xs:attribute name="name" use="required" type="config:NonEmpty

这是我想在模式中定义的XML(部分)。我已经为
元素的
name
属性添加了唯一约束

<parameters>
  <add name="one" value="1" />
  <add name="two" value="2" />
</parameters>

但是我不知道如何预防。我已经尝试了以下模式,但并不荣幸:

<xs:attribute name="name" use="required" type="config:NonEmptyString" />

<xs:simpleType name="NonEmptyString">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
  </xs:restriction>
</xs:simpleType>

config
是架构的目标命名空间


编辑:在XML编辑器中编写XML时,我正在使用Visual Studio验证XML。

我做了一个快速测试;使用XML创建XSD并添加约束:

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="parameters">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element maxOccurs="unbounded" name="add">
                    <xsd:complexType>
                        <xsd:attribute name="name" type="NonEmptyString" use="required"/>
                        <xsd:attribute name="value" type="xsd:unsignedByte" use="required"/>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="NonEmptyString">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

我想说,问题在于XSD处理器,而不是XSD本身。也许你可以用你正在使用的处理器更新帖子?

我做了一个快速测试;使用XML创建XSD并添加约束:

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="parameters">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element maxOccurs="unbounded" name="add">
                    <xsd:complexType>
                        <xsd:attribute name="name" type="NonEmptyString" use="required"/>
                        <xsd:attribute name="value" type="xsd:unsignedByte" use="required"/>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="NonEmptyString">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

我想说,问题在于XSD处理器,而不是XSD本身。也许您可以使用正在使用的处理器更新帖子?

Visual Studio 2010正确执行验证-它会生成警告:

Warning 4 The 'name' attribute is invalid - The value '' is invalid according to its datatype 'config:NonEmptyString' - The actual length is less than the MinLength value. XMLFile1.xml    3   14  Miscellaneous Files

但出于某种原因(bug?),它不会在XML编辑器中的错误位置加下划线。

Visual Studio 2010正确执行验证-它会生成警告:

Warning 4 The 'name' attribute is invalid - The value '' is invalid according to its datatype 'config:NonEmptyString' - The actual length is less than the MinLength value. XMLFile1.xml    3   14  Miscellaneous Files

但出于某种原因(bug?)它没有在XML编辑器中的错误位置加下划线。

确实,你是对的,我应该查看实际错误列表窗口,并显示警告。确实,你是对的,我应该查看实际错误列表窗口,并显示警告。