草庐IT

xml - 定义允许来自混合 namespace 的属性的模式

我正在努力尝试开发一个允许来自混合命名空间的属性的模式。这是xxx_schema2.xsd:这是导入xxx_schema2的xxx_schema1.xsd:这是我想根据xxx_schema1.xsd验证的XML文档:当Saxon-EE解析器尝试根据模式验证XML文档时,它生成的错误实际上是:Enginename:Saxon-EE9.3.0.5Severity:errorDescription:Attribute@xxx:schema2Attribute1isnotallowedonelement(itwouldbeallowedinnamespacehttp://www.mrbouff

java - 从 DOM 中的 XML 文件中删除数据?

有没有一种简单的方法(可能使用DOMapi或其他方法)我可以从XML文件中删除实际数据,只留下一种模式模板,以便我们可以看到它的潜在信息可以坚持。我将举个例子来说明这一点。考虑用户输入以下xml文件:然后我想把它变成:我确信这可以手动编写,但这是最好、最有效和最可靠的方式。(最好使用Java)。谢谢! 最佳答案 有很多可能性:DOMAPI(包含在JDK中)SAXAPI(包含在JDK中)JDOM(易于使用,但外部)XSLT(使用准备好的XSL样式表转换XML,JDK支持XSLT1.0)我认为XSLT是将XML转换为另一种XML的最可靠

xml - XML 模式中的限制

我需要限制一个整数,它可以取1到48之间的值,但也可以取63的单个值。这可以做到吗?我知道下面的内容会处理第一个限制,但是我怎样才能将63添加到列表中呢? 最佳答案 定义两种类型:一种允许1-48范围内的整数,一种只允许整数64;然后定义一个类型,它是这两者的联合。或者在XSD1.1中,只定义一个限制xs:integer的类型 关于xml-XML模式中的限制,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

java - XML 验证中的问题。 MIn 出现工作不正常

我有一个示例代码,我在其中尝试使用xml验证方法来验证xml。除了minOccurs之外,它也可以正常工作。我已经给出了下面的代码。请帮我找出我的错误。XSD文件(Live.xsd):-Xml文件(example.xml):-Owen10downinghillJava方法:-privatevoidvalidate(Filexml){try{url=newURL(xsd.toURI().toString());//xsd}catch(MalformedURLExceptione){e.printStackTrace();}source=newStreamSource(xml);//xml

xml - 模式 1.1 的 lxml

我正在尝试将lxml与xs:assert验证标记一起使用。我试过使用这个IBM页面中的示例:http://www.ibm.com/developerworks/library/x-xml11pt2/lxml似乎不支持XMLSchema1.1。有人可以验证这个吗?什么XML(用于Python)引擎支持Schema1.1? 最佳答案 目前支持XSD1.1的两个模式处理器是Xerces和Saxon-都是基于Java的。 关于xml-模式1.1的lxml,我们在StackOverflow上找到一

xml - 您可以转换无序的 xml 以匹配 xsd :sequence order?

您好,我需要使用xslt将无序的xml转换为xsd架构中指定的正确顺序需要使用进行转换xml可以具有任何顺序的属性,最多10个属性元素。我尝试使用xsl:for-each来尝试处理xml,但我对如何让xslt进行转换感到困惑将xml转换为序列定义的正确顺序任何帮助将不胜感激 最佳答案 这可能不是最好的方法,但它似乎工作正常。我不确定xs:element的处理顺序是否得到保证。此外,这是在oXygen中使用Saxon-HE9.3.0.5测试的XSLT2.0答案。XML输入(修改了Person的大小写以匹配模式):外部XSD架构文件(s

java - 如何解决第三方 XML 架构冲突?

我正在处理一组由第三方编写的架构描述rune件。我需要为它们生成JAXBstub。每个XSD都定义了一种不同的消息类型,以及许多支持的简单和复杂类型。许多类型对于每个XSD都是通用的,但作者没有将它们分解到一个单独的XSD中,而是选择在每个命名空间中定义它们。当我尝试将使用xjc的XSD编译到单个包中时,这会造成命名空间冲突。我被迫将它们分成不同的包。问题是这使得它们在应该互换的时候不可互换。我必须做很多额外的转换才能在不同的消息类型中使用来自一种消息类型的数据。我的问题:有没有什么方法(绑定(bind)自定义?)我可以指示xjc为每个共享类型使用一个java类,而不是分布在不同包中的

XML 架构 : element with attributes and text with restrictions

我是XMLSchema的初学者,我正在尝试解决一个(在我看来)相当简单的问题:我想匹配表单中的标签sometext即具有文本和属性的标签。基本上,我知道如何使用extension工具完成此操作。这似乎相当不直观,但有效。这是基本的习语:不过,我也想对text和attribute进行限制!文本不应超过一定长度,属性应为一定范围内的整数。我怎样才能做到这一点?貌似我在使用扩展时不能对文本使用限制。 最佳答案 使用而不是扩展。您可能希望单独声明简单类型并在其他构造中引用它们。编辑:抱歉占用我的时间。昨天去参加了一些事件,结果一如既往地在我

xml - 停止 xsd.exe 生成多维数组

我有具有以下结构的XSD架构:ElementA只有一个ElementB而ElementC有零个到无限个ElementA->ElementB->ElementC[]当我使用此模式和xsd.exe生成类时,它会生成多维数组:在使用ElementA的任何地方,它都会将ElementC[][][]。对于每个深度一维。有没有办法阻止xsd.exe这样做?例如,XSD定义了一个名为carList的元素,它只包含汽车标签(从零到无限的“汽车”)。然后xsd.exe应该创建一个名为carList的类,它只包含一个一维数组或汽车列表。相反,无论在哪里使用carList,它都会放置一个car[][]。不喜

java - 验证 XSD 文件

我想验证XSD文件(不是XML)。我使用的方法是将XSD视为任何其他XML文件并使用此www.w3.org/2001/XMLSchema.xsd作为模式。我正在使用以下代码:StringschemaLang="http://www.w3.org/2001/XMLSchema";SchemaFactoryfactory=SchemaFactory.newInstance(schemaLang);Schemaschema=factory.newSchema(newStreamSource("C:\\Users\\aprasad\\Desktop\\XMLSchema.xsd"));Vali