我有一个这样的xml结构。我想做一个模式(XSD)验证,使
<Request>
<DataRequest Name="Bob"></DataRequest>
<DataRequest Name="Rob"></DataRequest>
<DataRequest Name="Smith"></DataRequest>
<DataRequest Name="Andy"></DataRequest>
</Request>
我已经对可能的名称属性值进行了验证,但无法将某些值设置为可选值:
<xs:element maxOccurs="unbounded" name="DataRequest" >
<xs:complexType>
<xs:attribute name="Name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Bob" />
<xs:enumeration value="Rob"/>
<xs:enumeration value="Andy"/>
<xs:enumeration value="Smith/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
可选性不能依赖于XSD 1.0中的属性值,但如果重新设计XML,
<Request>
<Bob></Bob>
<Rob></Rob>
<Smith></Smith>
<Andy></Andy>
</Request>
您可以在中简单地使用minOccurs=“0”来指定可以省略Bob和Rob:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<xs:element name="Request">
<xs:complexType>
<xs:sequence>
<xs:element name="Bob" minOccurs="0"/>
<xs:element name="Rob" minOccurs="0"/>
<xs:element name="Smith"/>
<xs:element name="Andy"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
您可以使用xs: assert
根据属性值指定可选性/需求性。
这里,我们断言其他枚举是必需的,留下Bob和Rob是可选的:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
elementFormDefault="qualified"
vc:minVersion="1.1">
<xs:element name="Request">
<xs:complexType>
<xs:sequence>
<xs:element name="DataRequest" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Bob"/>
<xs:enumeration value="Rob"/>
<xs:enumeration value="Andy"/>
<xs:enumeration value="Smith"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:assert test="DataRequest[@Name='Smith']"/>
<xs:assert test="DataRequest[@Name='Andy']"/>
</xs:complexType>
</xs:element>
</xs:schema>
我对xslt有这个问题。样式表中有一个名为misctable的表,它被放在一个变量miscTables中。例如在节点 id="_384PLATE"具有值A1、A2、B1。当我标记并将其与xml进行比较时,我需要保存R[@i=2]/C/@i属性的值。在这种情况下,我需要得到值2,3,26 xml xslt 非常感谢。
我正在使用Jackson的JsonNode解析json。我的json结构如下所示(设为变量rawJson): 在Java中: 如何通过过滤属性<code>name</code>来获得特定的JsonNode元素?如果我想得到<code>值</code>大于X的JsonNode元素,怎么样?我是否可以在不遍历<code>结果</code>变量的情况下完成这些操作?
我如何使用“insref”和“pref”对下面的元素进行分组,我在xslt版本1中使用了生成密钥id。 期望的结果: 这是我所拥有的。我也在使用密钥生成函数。任何想法这个xslt有什么问题。至于计数,我正在考虑获得唯一的密钥计数。
我正在编写XSD来验证XML,但在验证时出现了以下错误: 输出错误 使用XML架构验证当前文件: 错误:元素'{http://www.w3.org/2001/XMLSchema-instance}Gasto':不应使用此元素。预计为(加斯托) ...我不明白这个错误 以下是我的XML示例: 下面是我的XSD示例:
我有以下XML。 我在http://chris.photobooks.com/xml/default.htm上查看了它,它显示xpath无效,不确定问题出在哪里。
我需要接受元素的2个属性语法: 我创建了一个能够验证第80行的xsd: 要验证第70行,我可以执行以下操作: 1/如何合并这两个语法,以便验证第70行和第80行? 2/如何避免空的fsinfo标记? 3/"fsinfo"属性可以是任何顺序 重要的是,如果存在超过“line”和“注释”属性(例如“mount_dev”,则必须存在所有相关的必需参数。(第80行验证方案) 注意:我不能更改xml文件,因