Tag: xml validation

模式定义中的<xsd:all>和<xsd:sequence>之间的区别?

我正在使用复杂types的xsd:all 。 当我错过任何强制性的元素,而validation它会显示所有的元素。 它不会显示确切的遗漏元素。 但是如果我使用xsd:sequence我可以得到确切的错过的元素。 这两者有什么区别? xsd:sequence :XML元素的xsd:sequence必须相同。 但是, xsd:all :XML元素可能是任何顺序。

elementFormDefault在XSD中做了什么?

elementFormDefault做什么,什么时候使用? 所以我find了elementFormDefault值的一些定义: 限定 – 元素和属性位于模式的目标名称空间中 不合格 – 元素和属性没有名称空间 所以从这个定义我会认为,如果一个架构设置为合格,那么为什么你必须在名称空间的前缀types? 你甚至有什么情况下,你会有一个不合格的事情? 我尝试了Googlesearch,但是我得到的只是一些W3C页面,这些页面非常难以理解。 这是我正在使用的文件,为什么我需要将types声明为target:TypeAssignments当我将targetNamespace声明为与xmlns:target相同? <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:target="http://www.levijackson.net/web340/ns" targetNamespace="http://www.levijackson.net/web340/ns" elementFormDefault="qualified"> <element name="assignments"> <complexType> <sequence> <element name="assignments" type="target:TypeAssignments" minOccurs="1" maxOccurs="unbounded"/> </sequence> </complexType> </element> <complexType name="TypeAssignments"> <sequence> <element name="assignment" type="target:assignmentInfo" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <complexType name="assignmentInfo"> <sequence> <element name="name" type="string"/> <element name="page" type="target:TypePage"/> <element name="file" type="target:TypeFile" minOccurs="0" […]

如何使用schemaLocation或noNamespaceSchemaLocation将XML链接到XSD?

我发现这个问题的一些提示,但仍然没有帮助我。 这是我的XML <?xml version="1.0" encoding="UTF-8"?> <work xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2001/XMLSchema-instance" tns:schemaLocation="myXSDSchema.xsd"> <tns:Objects> <tns:Object Name=":" Location=":"> </tns:Object> </tns:Objects> </work> 这是我的XSD文件: <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns = "http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> (some checks) </schema> 我的XSD文件与XML位于同一个文件夹中。 如何链接这两个文件?

当另一个元素有一定的值时,在XSD中需要XML元素吗?

我只需要一个必需的属性或元素,如果select一个枚举的特定值。 示例如下: <xs:element name="TYPE" type="TestEnum" /> <!– // This Element should only required when TYPE = INTERNATIONAL –> <xs:element name="IBAN"/> </xs:complexType> <xs:simpleType name="TestEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="NATIONAL"/> <xs:enumeration value="INTERNATIONAL"/> </xs:restriction> </xs:simpleType>

如何解决错误:在根元素之后的文档中的标记必须是格式良好的

我把我的代码放在XMLvalidation网站,它给了我这个错误: 第8行:4根元素之后的文档中的标记必须是格式正确的。 有问题的行是<xsl:output method = "html" doctype-system = "about:legacy-compat"/> ,行。 XML <?xml version="1.0"?> <!– Fig. 15.21: sorting.xsl –> <xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <!– write XML declaration and DOCTYPE DTD information –> *<xsl:output method = "html" doctype-system = "about:legacy-compat" />* <!– match document root –> <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> </xsl:template>

如何parsing无效的(坏的/不正确的)XML?

目前,我正在研究一个涉及parsing从其他产品收到的XML的function。 我决定对一些实际的客户数据进行一些testing,看起来另一种产品允许来自用户的input被认为是无效的。 无论如何,我仍然需要尝试找出一种parsing方法。 我们正在使用javax.xml.parsers.DocumentBuilder而且input错误如下所示。 <xml> … <description>Example:Description:<THIS-IS-PART-OF-DESCRIPTION></description> … </xml> 正如你所看到的,描述里面有一个无效的标签( <THIS-IS-PART-OF-DESCRIPTION> )。 现在,这个描述标签被认为是一个叶子标签,它不应该有任何嵌套的标签。 无论如何,这仍然是一个问题,并产生DocumentBuilder.parse(…) 我知道这是无效的XML,但它是可以预见的无效。 任何想法的方式来parsing这样的input?