我正在尝试为小型XML创建XSD,它的默认名称空间为
<?xml version="1.0" encoding="UTF-8"?>
<POSLog xmlns="http://www.nrf-arts.org/IXRetail/namespace/">
<object xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="A">
<elt1>test1</elt1>
<elt2>test2</elt2>
<elt3>test3</elt3>
</object>
<SequenceNumber xmlns:ns2="http://www.nrf-arts.org/IXRetail/namespace/" xmlns="">3</SequenceNumber>
</POSLog>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://www.nrf-arts.org/IXRetail/namespace/" targetNamespace="http://www.nrf-arts.org/IXRetail/namespace/" attributeFormDefault="unqualified" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="schema1.xsd" />
<xs:element name="POSLog">
<xs:complexType>
<xs:sequence>
<xs:element ref="object" />
<xs:element ref="SequenceNumber" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="object">
<xs:sequence>
<xs:element name="elt1" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="A">
<xs:complexContent>
<xs:extension base="object">
<xs:sequence>
<xs:element name="elt2" type="xs:string"/>
<xs:element name="elt3" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="SequenceNumber" type="xs:unsignedByte" />
<xs:element name="object" type="object" />
</xs:schema>
当我试图验证XSD我得到以下错误。这个错误的原因是
错误:元素{http://www.w3.org/2001/XMLSchema}模式:验证根没有匹配的全局声明。
我的要求是为上述示例XML生成有效的XML模式。
我找到了上述错误的原因。
在对象中。xsd我已经添加了elementFormDefault=“qualified”
属性,并更改了元素对象类型。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://www.nrf-arts.org/IXRetail/namespace/" targetNamespace="http://www.nrf-arts.org/IXRetail/namespace/" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="schema1.xsd" />
<xs:complexType name="A">
<xs:sequence>
<xs:element name="elt1" type="xs:string"/>
<xs:element name="elt2" type="xs:string"/>
<xs:element name="elt3" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="POSLog">
<xs:complexType>
<xs:sequence>
<xs:element name="object">
</xs:element>
<xs:element ref="SequenceNumber" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
要调整XSD以验证XML:
>
注意POSLog
和对象
在"http://www.nrf-arts.org/IXRetail/namespace/"
命名空间中,而序列号
不在命名空间中。
因此,对定义进行分组,使POSLog
和object
在一个XSD(object.XSD
)中,而SequenceNumber
在另一个XSD(schema1.XSD
)中。
相应地重新分发类型定义。
下面是验证XML所需的XSD的一整套调整:
<?xml version="1.0" encoding="UTF-8"?>
<POSLog xmlns="http://www.nrf-arts.org/IXRetail/namespace/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nrf-arts.org/IXRetail/namespace/ object.xsd">
<object xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="A">
<elt1>test1</elt1>
<elt2>test2</elt2>
<elt3>test3</elt3>
</object>
<SequenceNumber xmlns:ns2="http://www.nrf-arts.org/IXRetail/namespace/" xmlns="">3</SequenceNumber>
</POSLog>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns2="http://www.nrf-arts.org/IXRetail/namespace/"
targetNamespace="http://www.nrf-arts.org/IXRetail/namespace/"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="schema1.xsd"/>
<xs:element name="POSLog">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns2:object" />
<xs:element ref="SequenceNumber" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="object" type="ns2:object" />
<xs:complexType name="object">
<xs:sequence>
<xs:element name="elt1" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="A">
<xs:complexContent>
<xs:extension base="ns2:object">
<xs:sequence>
<xs:element name="elt2" type="xs:string"/>
<xs:element name="elt3" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SequenceNumber" type="xs:unsignedByte" />
</xs:schema>
我无法使用下面的XSD验证XML, XSD数据 我在用XML验证这个XSD时遇到以下错误, cvc复合型。2.4.答:发现以元素“standardHeader”开头的内容无效。应为“{standardHeader}”之一。 如何提供此标签:
我有一个非常简单的XML 组织。xml。萨克斯。SAXParseException:s4s elt架构ns:元素'Config'的命名空间必须来自架构命名空间'http://www.w3.org/2001/XMLSchema'. XML到这里: XSD去这里:
目标:在我的项目中,数据准备是由不同的团队在不同的级别完成的。我们用于数据准备的格式是XML。为了支持上述需求,我们准备了具有不同层(不同目标命名空间)的XSD,每个XSD层将继承先前的XSD层并对其进行扩展(感谢XSD重新定义)。 问题: 基础架构类型.xsd: infrastructure-GenericADM.xsd: 当我使用 Altova XMLSpy 验证 XSD 基础结构时,它给出了
本文向大家介绍aurelia 基于命名约定创建自定义元素,包括了aurelia 基于命名约定创建自定义元素的使用技巧和注意事项,需要的朋友参考一下 示例 通过CustomElement在类名中简单地添加后缀,即可基于命名约定在Aurelia中创建一个基本的自定义元素。此后缀将由Aurelia自动删除。类名称的其余部分将被小写并使用连字符分隔,然后可用作元素名称。 示例: my-element.js
我想在java中以编程方式生成xml字符串,其名称空间是自定义的,如下所示,所有数据必须以xml格式动态出现。我怎样才能达到这样的成就? 我经历过像https://howtodoinjava.com/jaxb/write-object-to-xml/这样的例子,但是当xml生成时,它的起点是 但我想要开始和结束标记
本文向大家介绍aurelia 创建具有可绑定属性的自定义元素,包括了aurelia 创建具有可绑定属性的自定义元素的使用技巧和注意事项,需要的朋友参考一下 示例 创建具有可绑定属性的自定义元素非常简单。如果要创建一个接受一个或多个插件可以使用的值的元素,则需要使用@bindable装饰器和语法。 在下面,我们正在创建一个自定义元素,该元素接受一系列水果并显示它们。 示例: my-element.j