草庐IT

CS通讯模式

全部标签

c# - 自定义 XML 文档的验证模式

我有一个网络应用程序可以生成一个中等大小的XML数据集供第三方使用。我认为为我生成的XML提供某种形式的架构文档是个好主意,所以我将XML粘贴到VisualStudio中并让它生成XSD。烦人的是我的XML没有验证生成的XSD!推出自己的XSD是否更好?不同的模式文档(如DTD、RelaxNG或Schematron)怎么样?关键是我希望能够使用C#验证我的文档。您的XML验证策略是什么? 最佳答案 您选择XSD和/或Schematron取决于您要验证的内容。XSD可能是最常见的验证策略,但它可以验证的内容有限。如果您只想确保每个字段

xml - 如何使用 ant 根据模式验证 XML 文件?

作为构建过程的一部分,我想根据架构(XSD)验证XML文件。我正在尝试像这样使用schemavalidate任务:这会产生以下错误:[...]BUILDFAILEDbuild.xml:65:Thefollowingerroroccurredwhileexecutingthisline:build.xml:59:ParserdoesnotsupportXercesorJAXPschemafeatures我使用的是最新的ant发行版(1.7.1)。是否需要任何其他库才能使验证正常工作? 最佳答案 schemavalidate任务实际上如

java - XMLCatalog 可以用于模式导入吗?

您可以使用XMLCatalog解析模式导入语句中的xsds吗?如果是这样,首选/最佳做法是什么?我想将xsds打包到一个jar中,因此使用相对schemaLocation无效。到目前为止,我正在尝试做类似的事情:SchemaFactoryfactory=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);XMLCatalogResolvercatalogResolver=newXMLCatalogResolver(newString[]{"/path/to/catalog.xml"});factory.setRes

xml - 使用 XML 模式作为 OO 继承 (JAXB) - 可能吗?

我的XML架构文件中有一组复杂类型。基本上我有一堆“响应”对象。每个响应对象都遵循相同的通用格式,但采用更具体的方式。所以,例如:我想让它有一个“子类”成为可能,其中“transition”和“ResponseBlock”被替换为每种类型的有效“子类”。IE。我已经通过限制/扩展派生了它们,并希望将它们包含在本身由限制派生的响应中:这样,使用JAXB,我可以生成一个完全面向对象的继承结构。但它似乎没有编译;Eclipse显示错误:derivation-ok-restriction.5.4.2:“IDResponse”类型错误。类型的粒子不是基粒子的有效限制。rcase-Recurse.

xml - GPX 解析模式和 "standards"

我想继续这篇文章的讨论:GPXSchemavalidationproblems.直截了当,我想问问人们如何在他们的软件中解析和处理GPX文件,或者给我建议应该如何做。虽然有人可能会说,只要解析trkpt元素并在您的软件中使用它们,事情对我来说并不是那么简单。首先,正如上面引用的帖子中所讨论的,许多gpx生产设备(软件、gps手持设备等)产生的gpx文件不符合官方GPX架构(元素在顺序错误、值类型更改、元素名称更改等)。在开始解析gpx文件时,我最初的教导是首先检查它们是否针对GPX模式进行验证。其中有很多包含实际的GPS数据(纬度/经度/海拔值的序列),但它的显示格式(尽管被GPX后缀

xml - 带空格的 Scala XML 模式

xml是否有匹配以下模式的值?xmlmatch{case{x}=>42} 最佳答案 是的。scala>valx=33x:Int=33scala>valxml={x}xml:scala.xml.Elem=33scala>xmlmatch{case{x}=>42}res0:Int=42我认为您的困惑来自于它与33不匹配scala>33match{case{x}=>42}scala.MatchError:33(ofclassscala.xml.Elem)这是因为当你使用{},scala为{}前后的空格插入额外的元素,所以你得到三个元素,而

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

java - 在 XSD 的限制中指定多个模式

我有以下XSD元素:我想单独应用这些模式中的每一个。它应该首先检查长度是否合适。如果是,则检查它是否至少有2位数字,依此类推。相反,它将所有表达式连接在一起并尝试将它们应用在一起。这是非常糟糕的设计。如果只允许一种模式应该定义的基数为1。允许多个给人的印象是支持多种模式。有没有办法将多个模式应用于XSD元素? 最佳答案 Multiplepatternsperrestriction被支持,但它们并不意味着AND;他们的意思是:Note:AnXMLcontainingmorethanoneelementgivesrisetoasingl

json - 如何配置 Jackson XmlMapper 以使用来自 xml 模式的数据类型

我有一个xml消息需要转换成json消息格式。xml消息定义了xml架构,其中包含元素的类型信息。但是,生成的json将所有值作为文本值而不是xml模式中提到的bool值/数字。我如何指示XmlMapper()从xml架构中派生类型信息?XmlMapperxmlMapper=newXmlMapper();StringxmlMsg=getResourceContent("test.xml");JsonNodenode=xmlMapper.readTree(xmlMsg.getBytes());ObjectMapperjsonMapper=newObjectMapper();Stringj

xml - XML 模式中根元素的定义不正确

有一个模式包含以下无聊的根元素:就我而言,架构是有效的,例如,Excel读取它没有问题。但是,当我尝试使用MSXML(v3或v4或v6)针对此架构验证内容时,我收到了主题错误。(我创建了XMLSchemaCache,当我将加载的模式添加到其中时发生错误。)我从Google得知MSXML引擎存在概念上的问题,不符合W3标准,必须使用不同的namespace定义。但是,我既找不到更正确的定义,也找不到对问题的任何体面的解释。我只能在论坛上找到很多没有回复的帖子。有没有人能把这件事解释得更深入一点?编辑出于某种原因,尽管我通过版本3、4和6循环引用项目,但一直使用版本3。强制切换到4/6解决