order_creation_xsd_validation_and
全部标签 在下面的示例xml/xsd中,当用户为AnimalCategories输入值时,我希望AnimalBreeds中的枚举只允许适当的值。例如,如果用户输入Cat,则AnimalBreeds的有效选择应该仅为Siamese和Persian。我查看了有关xsd1.1中可用的断言和替代方法的帖子,但我看不出如何将其应用到我的特定需求。任何想法将不胜感激。 最佳答案 如果您可以枚举类别及其品种,使此可检查的最简单方法是使用类别名称(以及可选的品种)作为元素名称,而不是属性值。如果您只针对类别而非品种执行此操作,您的XML可能采用如下形式:元素
我有一个像这样的xml文件11118-02-20151219-02-2015..我有一个无法更改的XSD文件,在该文件中,日期必须采用某种格式。并且可以有1000个“subRequest”标签条目。我创建了一个架构验证来检查格式。所以我的问题出在这1000个条目中,如果只有2个条目的日期格式不正确,我怎么知道这2个条目的ID。当我使用JAXB(unmarshaller)将此xml转换为bean时,我正在检查它。我使用了模式验证,并且validator.getLocalizedMessage()为对象和节点都提供了null。我只能看到lineNumber和有关问题格式的一般消息。
当加载我的应用程序spring上下文时,我收到以下错误(仅在Linux机器上,在Windows上似乎以某种方式工作):Failedtoreadschemadocument'http://www.springframework.org/schema/tool/spring-tool-4.1.xsd',because1)couldnotfindthedocument;2)thedocumentcouldnotberead;3)therootelementofthedocumentisnotxsd:schema.堆栈跟踪如下:org.springframework.beans.factory
我有一个XSD,我需要一个日期元素为空或在某个日期(10/1/2015)之后。因此,应该允许以下内容:2015-10-10我的XSD定义为:这强制日期是正确的,但不允许日期为空。任何见解或建议将不胜感激。 最佳答案 您的定义已经允许一个空的DDate,除了一个限制,您还必须指定xsi:nil="true",如下所示:但是,如果使用“allowempty”,你的意思是你想在不使用xsi:nil的情况下允许空白和/或空节点,有很多方法可以做到这一点。我可能会选择工会,就像这样:这意味着仅允许:有minInclusive限制的日期折叠空格
我正在使用xjc创建JAXB类。我正在使用以下命令xjc-dsrc-pcom.abc.projthe-types.xsd我收到以下错误parsingaschema...[ERROR]s4s-att-invalid-value:Invalidattributevaluefor'name'inelement'attribute'.Recordedreason:cvc-datatype-valid.1.2.1:'xmlns:xsi'isnotavalidvaluefor'NCName'.line106offile:/C:/Port/Field/the-types.xsd[ERROR]src-
我想允许元素是xs:date或空字符串。这是我试过的XML模式:如果元素包含一个值,我希望该元素为DatoVedtagetType,如果它为空,我希望它为DatoVedtagetTypeString。我如何在这个架构中实现这样的条件功能? 最佳答案 根据对该问题的评论,目标是让DatoVedtaget成为xs:date或为空。这是表达这种约束的一种方式: 关于c#-允许XSD日期元素为空字符串,我们在StackOverflow上找到一个类似的问题: https
我正在使用Jdeveloper12c。我正在尝试使用complexType作为在另一个complexType中键入另一个元素的引用。Jdev告诉我它找不到AddressInfo引用。这是相关的代码片段,请帮助: 最佳答案 为targetNamespace定义一个命名空间前缀:xmlns:po="http://xmlns.oracle.com/SquareEdge/SEPPO/ProcessPO"然后用它来引用AddressInfo:你的错误就会消失。总的来说(加上一些其他的小修复): 关
我想限制xsd:complexType只包含0.5到20之间的值,两者都包括在内,步进0.5。这意味着数字:0.511.522.533.5..upto20我的代码在这里:可以通过在xsd:string上应用正则表达式来实现,但是我正在寻找限制xsd:double的解决方案。 最佳答案 一个简单(虽然冗长)的解决方案是使用枚举:...一个更优雅的解决方案是使用结合了min和maxInclusive的模式:正如C.M.Sperberg-McQueen所指出的,后者允许更轻松的范围适应,但可能会使一些模式感知建议提供者感到困惑。
我需要在我的xsd架构中设置if/else条件。具体模式节点。我该怎么做? 最佳答案 不,您不能在xs:pattern/@value中使用if。不可以,您不能在xs:pattern/@value中引用另一个元素。你可以做什么:XSD1.0:重构您的XML设计并使用核心内容建模构造。XSD1.1:条件类型分配可能会有所帮助。XSD1.1:断言可能会有所帮助。比这更具体的指导只有通过更具体的问题才能实现,该问题显示应该和不应该有效的XML,解释//todo等。 关于xml-XSDif-els
我知道all和choice,但它们没有说明我确实希望某些元素能够多次出现的情况,例如:我可以使用sequence,但我更愿意让这些child以任何顺序排列。我可以使用any,但我不能使用多个ThingC。我可以使用choice,但我无法将ThingA和ThingB限制为0或1。我想我可能已经在某处读到这在XSD中很难或不可能,但使用RELAXNG可能是可能的。不幸的是,我不记得我是在哪里读到的。感谢您的帮助! 最佳答案 没错:您不能在XMLSchema中做您想做的事,但您可以在RELAXNG中使用:您在XML架构中的选项是:添加一个