我有一个xml,必须根据xsd验证结构和数据类型。但xml中的某些字段具有空/空值。但是当使用JAXB验证xml时
“cvc数据类型有效。1.2.1:“”不是“整数”的有效值。”
此异常是从带有链接SaxParserError异常的JAXB异常引发的。但我必须接受带有空值的xml。这些线程验证了一个带有空属性和元素类型(long)且没有内容的XML模式,这表明我们必须修改关于xsd的XML,以便它能够接受null/empty值。
有没有其他方法可以重写ValidationHandler类和Unmarshaller类的方法以接受空值。
我猜你是想把
<myinteger></myinteger>
在XML中,但有一个XSD,如:
<element name="myinteger" type="integer" />
或
<element minOccurs="0" name="myinteger" type="integer" />
JAXB是对的。就XSD验证而言,这是错误的,所以您要么必须更改XML,要么更改XSD,要么禁用验证(仍然是错误的,但不会崩溃)。MinOccurs="0"
意味着接受元素根本不存在(删除所有myinteger标记)。这并不意味着接受内容为空的标记。内容必须是整数。空字符串不是整数。
设置nillable=true也不起作用。这意味着这将被接受:
<myinteger xsi:nil="true"></myinteger>
但您必须添加这个xsi:nil=“true”。
如果您确实想接受这一点:
<myinteger></myinteger>
您可以按以下方式更改XSD:
<element name="myinteger" type="IntegerOrNothing" />
<xsd:simpleType name="IntegerOrNoting">
<xsd:union memberTypes="xsd:integer">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="" />
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
如果使用Jaxb从XSD生成bean,默认情况下,这种类型的字段将是String
。然后需要使用自定义绑定来获取整数字段。
我无法使用下面的XSD验证XML, XSD数据 我在用XML验证这个XSD时遇到以下错误, cvc复合型。2.4.答:发现以元素“standardHeader”开头的内容无效。应为“{standardHeader}”之一。 如何提供此标签:
我试图根据内部引用另一个XSD的XSD验证XML(使用include语句)。 作为, 现在,当根据xsd(Schema1.xsd)验证我的XML时,如下所示: 我得到一个错误,“cvc-datatype-valid.1.2.1:'true'不是'boolean'的有效值。” 这是针对schema1.xsd引用的schema2.xsd中定义的元素。 如果我做错了什么,请告诉我。
我必须用以下xml为系统编写XSD 属性元素可以有多个枚举,每个不同的枚举可以有不同的数据类型 是否可以设置XSD限制/方面,以便 Name="Date"属性强制执行日期/时间格式 Name="Name"的属性强制执行字符串 非常感谢。
我正在尝试为小型XML创建XSD,它的默认名称空间为
我正在尝试编写用于XML检查的XML模式(XSD)。有一个元素包含枚举值和子元素。它的格式确实很奇怪,但被xml接受了。 XML元素能否同时包含文本和子元素? 我的案例: 我正在尝试编写xml模式(XSD)来验证格式。所需元素node1的文本有三个限制值。当文本的值等于“c”时,它还将包含一个子节点1。 例如,模式将通过以下情况: 或 或 但无论如何,它不会通过: 或 因为子节点1对于值“c”是必
问题内容: 我从Google的AdWords网站获取数据,该网站包含多个具有相同元素的元素。 您能否解释为什么以下3个查询没有得到相同答案(2)? 现场演示 HTML: JS: 问题答案: 根据W3C规范,具有2个具有相同ID的元素不是有效的html。 当您的CSS选择器只有一个ID选择器(并且未在特定上下文中使用)时,jQuery使用本机方法,该方法仅返回具有该ID的第一个元素。 但是,在其他两