XSD无法验证包含dt:dt属性的XML
XSD文件无法验证包含XSD无法验证包含dt:dt属性的XML,xml,xsd,attributes,xsd-validation,Xml,Xsd,Attributes,Xsd Validation,XSD文件无法验证包含dt:dt属性的XML文件。XSD文件中不接受dt:dt属性 比如说 <xs:attribute name="dt:dt" type="xs:nonNegativeInteger" use="optional"/> XSD文件: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDef
dt:dt
属性的XML文件。XSD文件中不接受dt:dt
属性
比如说
<xs:attribute name="dt:dt" type="xs:nonNegativeInteger" use="optional"/>
XSD文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="OperationalTopology">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="Element1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Element1_In" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ID" use="optional"/>
<xs:attribute name="dt" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
描述根元素的注释
在上面的示例中,xsd在验证XML时出错。
错误发生在dt:dt属性中。
xs:attribute
元素上的name
属性的值只能是本地名称(dt
)。它应该在它自己的模式中声明(比如,xsd2.xsd
),因为它有一个不同的名称空间(当然,除非这个模式已经存在):
通常解决方案是修复生成无效xml的代码。提供您正在使用的xml文件和XSD文件将非常有帮助,这样我们就可以理解问题并帮助您。谢谢@GhislainFourny我已经粘贴了我正在使用的XML和XSD文件。谢谢@MittalAnshul。我已经根据你的档案修改了我的答案。对不起。我不知道我的问题是怎么被编辑的。属性名不是“name”,而是dt:dt。例如。请对此提供答案。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="OperationalTopology">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="Element1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Element1_In" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ID" use="optional"/>
<xs:attribute name="dt" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:schemas-microsoft-com:datatypes">
<xs:attribute name="dt"/>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="urn:schemas-microsoft-com:datatypes" schemaLocation="xsd2.xsd"/>
<xs:element name="OperationalTopology">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element name="Element1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Element1_In" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ID" use="optional"/>
<xs:attribute ref="dt:dt" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>