这个问题在这里已经有了答案:XMLSchematovalidateXMLSchemas?(3个答案)关闭9年前。我在工作中经常使用xsd模式文件,我想知道:是否可以为xsd模式语言编写一个xsd模式文件?这似乎是记录模式语言的一种显而易见的方式,我认为这将是其开发人员首先尝试的事情之一。但是,我一直无法找到具有明显搜索词的此类文件。如果不可能,为什么不呢?如果可能的话,有人做过吗?有什么地方可以下载这样的文件吗?注意事项:维基百科建议xsd模式语言“不是100%self描述”,因为“内容和属性声明不能依赖于属性或元素上下文”。如果是这样,您能否提供一个xsd功能的示例,该功能需要此类上
假设我有一个XML文档(表示为文本、W3CDOM等),还有一个XML模式。XML文档具有架构定义的所有正确元素,但顺序错误。如何使用模式对文档中的元素进行“重新排序”以符合模式定义的顺序?我知道这应该是可能的,可能使用XSOM,因为JAXBXJC代码生成器使用元素的正确序列化顺序注释其生成的类。但是,我对XSOMAPI并不熟悉,而且它非常密集,所以我希望你们中的一些人对此有一些经验,并能为我指明正确的方向。类似于“此父元素内允许使用哪些子元素,以什么顺序排列?”我举个例子。我有一个这样的XML文档:我有一个XML模式,它表示的内容必须是其次是.现在很明显,如果我尝试根据模式验证文档,它
我想做的是在XML模式中创建一个序列元素,这样内容必须按顺序排列,但可能不会全部出现。例如,架构将是这样的:并且允许这样的XML:1423465MSDN对此有如下说法:Thefollowingexampleshowsanelement(zooAnimals)thatcanhavezeroormoreofthefollowingelements,elephant,bear,giraffe,inthesequenceelement.W3Schools建议相同。但是,visualstudio和在线验证服务都不喜欢建议的内容。这是我目前拥有的:这是XML:1423465VisualStudio
我有一个要用xml填充的对象。我认为我可能会使用接受此xml的构造函数来构建对象。但是,是否有更好的设计模式来做到这一点?是否由对象来处理所有的xml解析?谢谢! 最佳答案 不,您不应该将xml发送到构造函数,因为您正在将模型与反序列化逻辑耦合。您应该创建一个类来为您处理反序列化并返回一个实例。为什么这很重要可能还不清楚。但是想象一下,将来您可能拥有来自数据库的数据,您不想将数据库连接传递给构造函数,对吗?相反,您可以创建一个不同的类,该类使用数据库来生成您的类的实例。这里有一些不错的读物:http://en.wikipedia.o
我定期处理一些XML文件,并希望获得比DTD所能提供的更好的验证。所以我开始阅读模式,看看是否能帮到我。到目前为止,除了一件之外,我已经能够创造出几乎可以像我需要的那样工作的东西。我希望能够将元素的属性限制为具有相同元素类型的兄弟元素或祖先元素的不同属性值。这甚至可以通过XML模式键/keyref限制实现吗?我有一个看起来像这样的文档:在本文档中,节点可以“扩展”其他节点:siblingparent的sibling但是,节点不应该“扩展”:parent父节点的兄弟节点这意味着MyHouse可以“扩展”Table,这没有任何意义,但我同意这一点。同样重要的是,两个房子节点都应该能够拥有自
在为我们的项目设计数据库时,我们希望遵循HR-XML标准。是否有人拥有表示HR-XML实体的现成关系数据库模式? 最佳答案 我在使用gpx(也是一种XML格式)时遇到了同样的问题。这是我当时的处理方式:将XSD导入EntrepriseAchitect.使用漂亮的图表作为数据库设计的基础。我对工具的掌握程度不高,但获得一张好照片对我来说已经足够了。 关于xml-HR-XML数据库模式,我们在StackOverflow上找到一个类似的问题: https://sta
我正在实现BuilderPattern为了生成一组对象。然后必须将这些对象序列化为XML并从XML反序列化。我知道如何执行序列化和反序列化,但我不确定如何将其集成到设计模式中。例如,假设我的代码使用构建器来创建产品foo和bar。我的第一个想法是在每个产品上放置一个序列化函数,因为每个产品都知道要序列化什么。我的下一个想法是将反序列化放在Director或ConcreteBuilder中。我不喜欢的是序列化和反序列化函数将位于不同的位置-一个在文件中用于声明foo和bar对象,另一个在文件中用于其他内容。我担心在我处理产品类时它们最终可能会变得不同步。我最后的想法是让Director或
我知道我可以使用如下所示的回调方法根据模式验证xml,但有没有一种方法可以让我同步执行此操作而不是事件驱动?我想到的一种方法是设置类成员bool标志IsValidated=false然后调用xml.Validate(ValidationEventHandler)。事件处理程序将在完成后设置IsValidated=true。同时,进行循环检查,直到标志设置为真,然后继续。这是针对.Net3.5的。publicboolValidateSchema(stringxmlPath,stringxsdPath){XmlDocumentxml=newXmlDocument();xml.Load(xm
我有一个将格式作为参数的webapi方法,该方法返回xml和json。该方法返回的数据类型是DataTable。在json格式中,一切看起来都很好,但在xml格式中,数据表的模式和一些其他属性在xml节点中也返回。如何返回仅包含数据表数据的简单xml?另外,我在WebApiConfig中使用QueryStringMapping。这是WebApiConfig代码publicstaticvoidRegister(HttpConfigurationconfig){config.MapHttpAttributeRoutes();config.Routes.MapHttpRoute(name:"
我需要创建一个基于XML文件的XSD架构。是否有任何Perl模块可以执行此操作? 最佳答案 您可以使用任何XSLT处理器通过XSL转换创建XSD。参见XML::XSLTXSD文件包含两种元素类型:简单元素和复杂元素。所有叶节点都必须转换为简单类型元素,其他必须转换为复杂类型。叶节点是没有任何后代的节点。对应的XPath是//*[not(descendant::element())]。下面的XSLT实现了这个方法:下面的例子:PeterPan19041227将产生以下架构: 关于xml-如