草庐IT

java - 如何使用 xml 模式验证 xml?

是否可以使用以下模式验证以下xml?我想在不指定xml文件中的模式的情况下验证xml。我不确定这是否可行,但希望有人能帮助我弄清楚如何去做。当我尝试验证xml时,我不断收到以下错误。org.xml.sax.SAXParseException:cvc-elt.1:Cannotfindthedeclarationofelement'contacts'.JoeBuddah123BlackJackCove555-555-1212RayBuddah123BlackJackCove555-555-1212我用来进行验证的Java代码。staticfinalStringJAXP_SCHEMA_SOU

xml - 我们可以以 MM-DD-YYYY 格式验证来自 XSD 的日期吗?

我们可以在XSD中对要限制的元素指定MM-DD-YYYY格式的日期限制吗? 最佳答案 是的,可以使用正则表达式左边当然也应该检查范围。也许您可以扩展正则表达式以仅接受某些数字。 关于xml-我们可以以MM-DD-YYYY格式验证来自XSD的日期吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3507071/

xml - XSD 属性不能等于值?

如何限制属性不允许特定值?例如,我有一个在Id上一个元素的属性,但是一些雅虎已经消失并在那里扔了一个神奇的数字所以现在我不能允许3,但是1,2,和5是完全可以接受的。 最佳答案 您是否尝试过查看限制标签linktext,下面的代码,它应该给你一个名为Id的标签,它只允许不以3开头的整数 关于xml-XSD属性不能等于值?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/472883

java - 解析模式和同一模式中的导入

只是想知道是否有任何方法可以同时解析一个xsd文件和一个在原始xsd中导入的xsd,这样我就可以直接访问导入的xsd中的元素。是否有任何框架可以实现这一目标?只是我的意思的一个例子来self要解析的XSD:从解析文件中导入的XSD所以,我想要的是在我通过某种内联或其他方式解析原始xsd时访问导入的xsd中的元素:-)这在某种程度上是可能的吗? 最佳答案 是的,你只需要实现一个LSResourceResolver类,它能够从你指定的模式位置读取:/***ThisfunctionvalidatesaDomResult.T**@param

java - 将巨大的模式编译成 Java

有两个主要工具提供了将XSD模式编译成Java的方法:xmlbeans和JAXB。问题是XSD模式非常庞大:30MB的XML文件,大部分模式都没有在我的项目中使用,所以我可以注释掉大部分代码,但这不是一个好的解决方案。目前,我的项目使用xmlbeans,它编译具有重大更改的模式。它生成约60MB的类,编译需要约30分钟。另一种解决方案是使用JAXB,它无需编辑代码即可生成约14MB的代码。但它会产生巨大的ObjectFactory类,该类无法编译并出现“太多常量”错误。我可以扔掉这个类并在没有它的情况下编译模式,但据我所知,它是非常有用的类。有什么想法可以处理这个庞大的模式吗?

针对 XSD : The element xxx has invalid child element yyy in namespace zzz 的 XML 验证

XSD:XML:37.828.5我收到验证错误:Xml架构验证失败:元素“DataBodyTemperature”在命名空间“Docobo.DataBodyTemperature”中具有无效的子元素“Answer”。预期的可能元素列表:'Answer' 最佳答案 您的问题是您的架构未指定目标命名空间-因此所有类型都与null命名空间相关联。你的错误是因为模式指定DataBodyTemperature元素(在null命名空间中)应该只包含Answer和AmbientTemperature元素(它们都在null命名空间中声明),但是在您

java - XML 架构。处理命名空间感知属性值

我的部分项目涉及对用户定义的架构文档进行大量转换。我需要能够更改目标namespace、支持类型交叉引用和构建wsdl基于多个模式文档。最常用的操作之一是在将模式导入wsdl文件之前更改namespace前缀。我正在使用org.xml.sax.ContentHandler它是startPrefixMapping处理命名空间的方法。除非我想更改元素类型,否则一切正常且完美。这是简单的架构片段必须按如下方式放在wsdl中:问题是某些模式的属性值(type在中,base在中)是命名空间感知的,并且在上面的示例中可能会发生变化。如我所见,DOM和SAX解析器都无法处理这种情况,因此我目前正在使

xml - 使用 XML 模式进行条件验证

这可能是基本的,但我很难用我对XML和XML模式的基本知识来实现​​它。如有任何帮助,我们将不胜感激。给定以下XML文件片段:...3Userenteredinerror......1...有没有一种方法可以有条件地验证XML文件以确保当时,字符串元素是必需的数字元素的值为3但在时可选是另一个值吗?提前致谢... 最佳答案 不,你不能,不是XML模式。在使用架构验证XML结构并确保其内容有效后,您需要在代码中编写该逻辑。 关于xml-使用XML模式进行条件验证,我们在StackOverf

xml - 如果类型等于类型或从类型派生,如何检查 xPath

我在Schematron中使用xPath。我能够检查类型是否等于目标类型。例如“xsd:stringeqxsd:string”。Text如何检查用户定义的类型是否派生自xsd:string?我试过:Text但它不起作用。 最佳答案 没有公开的XPath2.0功能来执行此操作。事实上,XPath2.0类型不是一流的值;无法从仅在运行时已知的名称中找到类型,或询问该类型的属性。您将需要使用扩展:Xerces和Saxon都有用于查询模式组件的API,您可以构建调用这些的Java扩展函数。 关于

java - 我的 XML 模式有什么问题?

这是my.xsd中的架构:这是我要验证的XML文档:xxxSAX解析器说:"Invalidcontentwasfoundstartingwithelement'alpha'.Oneof'{alpha}'isexpected."怎么了? 最佳答案 你必须添加elementFormDefault="qualified"在您的架构定义中。不使用相对命名空间也是一个好主意,即使用这样的东西: 关于java-我的XML模式有什么问题?,我们在StackOverflow上找到一个类似的问题: