草庐IT

xml - XSD : model properties (name/value pairs)

我有一个XML定义属性,例如:是否可以使用XML模式指定条件,例如“如果属性名称为‘持续时间’,则该值必须为整数”。我认为这是不可能的,在XML文件中对此类信息建模的推荐方法是什么?我一直在想这样的事情:true30这样我就可以在我的模式中定义类型限制。但是,如果我拥有数百个不同的属性,并且这些属性在未来可能会增长,会发生什么情况...?谢谢。 最佳答案 推荐的方法是使用具有特定类型的特定属性或元素对XML进行建模。true30 关于xml-XSD:modelproperties(nam

xml - 从 XSD 生成 XML

我有一堆XSD,它们又继承了来自不同XSD的架构,我需要从这个XSD生成一个XML文件用于测试目的。我正在使用oXygenXMLEditor这样做但是当我尝试这样做时,它对我不起作用并且它说请定义根节点但是它不允许我这样做。因此,如果有人使用过oxygenXML,请提出解决此问题的方法?附加问题:我们如何使用从其他XSD继承模式的XSD验证传入的XML文件?这里的事情是我有一个传入的XML文件,因为我有大约57个XSD,其中一些从其他XSD继承了架构。 最佳答案 您可以使用XMLSPY.使用XMLSPY,您可以从XML生成XSD/D

java - 从 xsd :choice element 自定义 JAXB 2.0 生成的方法名称

我正在尝试了解如何自定义由JAXB2.1.12生成的方法名称。我有一个史诗般的XML模式(不在我的控制范围内),它包含一个组,其中一个选择元素包含大约200个其他元素。因此,当我生成JAXB类时,创建的get()方法毫无用处-它最终变成类似于“getElement1AndElement2AndElement3()”的东西。我想将get()方法重命名为更好的名称,但我不知道该怎么做。我知道在thetutorial它描述了通过在元素上使用自定义类名。我发现了一篇非常古老的文章(http://onjava.com/pub/a/onjava/2003/12/10/jaxb.html?page=

xml - 如何使用 XSD 排除 XML 文件中的枚举值?

是否可以指定标签或属性的值不应该是some_value?我有一个奇怪的要求,xsd不知道发送给它的值。该特定标记的值可以是具有任何值的字符串除了一个值(例如data_migration)。如果发送了该特定值,则发送方应确认错误。是否可以指定此限制? 最佳答案 我不是正则表达式专家,但是这个simpleType使得以data_migration开头的所有内容都无效。 关于xml-如何使用XSD排除XML文件中的枚举值?,我们在StackOverflow上找到一个类似的问题:

xml - 如何排除 XSD 中的根元素?

我在我的XSD文件中定义了几个元素,我稍后在文档中用作引用。我确实希望这些“引用”元素中的任何一个构成一个有效的xml文件。比如我有我不想验证以下xml(如果这是文件中的唯一行)从全局中删除“Section”节点阻止我引用它进行递归 最佳答案 如果您需要,不要将这些元素声明为全局元素,而是将您的模式设计基于复杂类型,并仅将您想要的元素声明为全局根元素。没有人强制您将每个元素都设为全局。例如,您的样本可以重构如下: 关于xml-如何排除XSD中的根元素?,我们在StackOverflow上

xml - XSD - 任何顺序和计数的元素(由 XERCES 使用 XSD 验证的 XML)

我对XML架构有疑问。我需要三种类型的元素元素内部但没有任何其他限制,紧接着恰好出现一次元素output:anyName/etc/app/conf.txt~/app/conf.txt~/app/report.txt~/app/templates/default.tt../t/${testName}/log.txt我可以只使用sequence、all或choice,但没有一个能满足我的要求。顺序-以精确顺序任意次数。全部-以任何顺序零次或一次。选择-只有其中之一。我找到了onesolutiononthisweb,但它不适用于Xerces。我试试这个:但我收到错误消息:发现以元素“swit

当节点有多个子节点时,针对 XSD 的 XML 验证失败

我需要为我们将在系统之间使用的XML文件生成一个XSD,以便我们可以验证我们获得的数据是否有效。XML看起来像这样(但有更多字段):10000122950000000001test-20000000002test-2我的XSD如下:当我只有一个Item节点时,此架构有效,但一旦我有多个节点,我就会收到以下错误:元素“Extra_Info”具有无效的子元素“Item”。如果指定为序列,为什么它不起作用?谢谢!PS:我用了ThisOnlineValidator为了快速验证,但我也遇到了与XMLReader相同的错误 最佳答案 默认情况下

xml - Java - 从另一个 XML + XSD 生成 XML

我在从另一个XML文件生成XML文件时遇到问题。我的用例是这样的:我有一个格式如下的XML文件:value2value3_1,value3_2,value3_3value4_1value4_2是的,我知道它很乱,但我就是这样得到它的。我还有一个XSD模式,我用它来使用JAXB生成相应的Java类(这没问题)。我现在需要的是一种从原始文件创建另一个XML文件的方法,格式如下:value2value3_1,value3_2,value3_3value4_1value4_2关于我应该使用什么框架/库来实现这一目标而不使用我自己的解析/创建机制,您有什么建议吗?我正在考虑使用XSLT,但我没有

xml - XSD:根据先前属性的值定义属性

我猜这个功能不存在,但我想我会再试一次。我有一个要验证的XML结构(我无法控制此结构)。在这个结构中,我可以有多个“条件”标签,每个标签都有一个属性“类型”,然后该标签中的其余属性取决于该类型是什么。因此,如果它看起来像这样:那么如果是LessThan类型,就只需要一个maxAmount标签等没有办法根据先前属性的值来使属性成为必需/可选/禁止的,嘿?我尝试使用多个Condition标签创建一个选择,每个类型具有固定的类型值和自定义属性集,但它提示标签具有相同的名称。 最佳答案 您描述的功能名称是“共现约束”,XSD1.0不支持它们

java - 根据 W3C XML 模式定义验证 XSD

我正在生成一些XML模式,并希望确保我们的生成器正在创建有效的XML模式文档(不是XML)。我试图想出代码来验证XML模式文档,但失败得很惨。我没想到会这么复杂。privatevoidvalidateXsd(StringxsdAsString){try{SAXParserFactoryfactory=SAXParserFactory.newInstance();factory.setValidating(true);factory.setNamespaceAware(true);factory.setFeature("http://apache.org/xml/features/val