我定期处理一些XML文件,并希望获得比DTD所能提供的更好的验证。所以我开始阅读模式,看看是否能帮到我。到目前为止,除了一件之外,我已经能够创造出几乎可以像我需要的那样工作的东西。我希望能够将元素的属性限制为具有相同元素类型的兄弟元素或祖先元素的不同属性值。这甚至可以通过XML模式键/keyref限制实现吗?我有一个看起来像这样的文档:在本文档中,节点可以“扩展”其他节点:siblingparent的sibling但是,节点不应该“扩展”:parent父节点的兄弟节点这意味着MyHouse可以“扩展”Table,这没有任何意义,但我同意这一点。同样重要的是,两个房子节点都应该能够拥有自
我有一些带有JAXB注释的类,我已经创建了一些实例,我需要根据我的XSD文件验证它们。当对象无效时,我应该能够获得错误的详细信息。到目前为止我还没有运气,我知道这个类ValidationEventHandler但显然我可以将它与Unmarshaller类一起使用,问题是我必须验证对象而不是原始XML。我有这个代码:MyClassmyObject=newMyClass();JAXBContextjaxbContext=JAXBContext.newInstance("x.y.z");JAXBSourcejaxbSource=newJAXBSource(jaxbContext,myObje
我在下面有一个XSD文档片段。当XML文件针对此模式进行验证时,我希望确保mm:Depot中的值和mm:Customer/mm:County相同且仅限于Location中的项目类型。这可以在XMLSchema1.1中使用来完成标记,但我必须针对XMLSchema1.0进行验证。是否有一些巧妙的技巧可以使它在1.0中工作?我想要实现的是这样的......OverThereJaneDoeOverThere记下值OverThere出现两次。 最佳答案 您可以使用“参照完整性”。错误可能如下所示:加载[]时出错,第10行位置3“http:/
我正在为一个简单的xml组合一个xml模式(请参阅下面的xml和模式)。但是我一直收到关于节节点的以下错误:“元素不能包含空格。内容模型是空的。”.浏览网络我找不到任何关于它的含义的简明解释,所以我可以修复它。谁能帮忙?编辑:感谢所有为模式提供帮助的人。我认为简要描述内容模型是什么以及为什么它在这里是空的会有所帮助。XML:架构: 最佳答案 facet的label属性设置为xs:ID,这不允许有空格。您可能想改用xs:string。 关于xml-错误"Theelementcannotco
我有一个XSD文件,我想从中创建示例XML。我找到了thisansweronSO告诉我使用XMLSchemaExplorer。但是当我在VisualStudio2008SP1中打开我的XSD文件时,我无法找到用于打开XML架构资源管理器的选项。如何打开这个窗口? 最佳答案 在VS2010中:右键单击您现有的.xsd文件并选择“打开方式”。选择“XML架构设计器”然后在出现的模板中,点击“XMLSchemaExplorer”链接。 关于xml-如何打开XMLSchemaExplorer,我
我希望能够拥有同一父元素的任意级别的嵌套子元素,例如:我正在编写XML模式文件,但我不知道如何在模式中表示这种父/子关系:这是我所拥有的,但它不是有效的模式定义:更新:感谢您的回复。我试过了,但出现以下错误:“w3.org/2001/XMLSchema:complexType”元素在此上下文中不受支持。我应该提到,我所描述的路径层次结构本身是一个名为application的元素的子元素,因此整个结构类似于: 最佳答案 下面应该可以解决问题。XSD标准很难直接使用,我总是使用像LiquidXMLStudio这样的编辑器.(来源:liq
我使用以下XmlSchema:它定义了一个必须至少有一个字符长的requiredStringType并且还定义了空格折叠。当我验证以下Xml文档时,验证成功:w3.org定义了空白折叠:“在替换隐含的处理之后,#x20的连续序列被折叠成单个#x20,并且前导和尾随的#x20被删除。”这是否意味着3个空格折叠为1个或0个空格?在XmlSpy中验证失败,在.Net中验证成功。 最佳答案 因为它说前导和尾随空格被删除,这意味着只包含空格的字符串将被折叠成一个空字符串。XmlSpy在验证方面是准确的,而.NET是慷慨的(或正在出错)。这是根
我正在尝试为一些基本但特定的需求制作一个简单的xml编辑器,我不确定如何处理的事情是我希望能够在xsd-schema本身。我的想法是这样的:我想要有关元素在架构中是否“可列出”的信息(请注意,.xml文件没有关于元素是否可列出的信息或线索,可列出属性只是一种方式在编辑器中组织元素)。它不需要是它自己的属性。如果有一个misc属性或者我可以玩的东西就可以了。问题只是上面的模式没有验证(在这种情况下不支持'listable'属性。)有没有办法在模式中存储这种信息?似乎可以创建一个新的命名空间,但我不知道应该如何声明该命名空间,以便任何元素都可以在xsd中具有特殊属性(我宁愿避免弄乱xml文
我们目前有大约15个不同的XSD文件,这些文件定义了可供开发人员配置我们项目的许多XML配置文件。有什么方便的方法可以一次将所有这些导入到XML目录中吗?虽然多选比一次导入一个文件(我们目前必须这样做)要好,但理想的解决方案是使用引用XML文件,这样开发人员就不需要执行任何额外的操作要添加到目录中的新模式。我可以从下拉列表中看到,有以下选项:标签库定义文件XML目录文件DTD文件XSD文件是否可以使用“Taglib定义文件”或“XML目录文件”来引用多个XSD文件?如果是这样,是否有关于如何做到这一点的指示?谢谢,多米尼克。 最佳答案
任何人都可以帮我添加一个限制到这个模式文件(对于OwnerEnglishName)吗?我知道如何使用简单类型来实现,而在复杂类型中我不知道如何实现。谁能帮忙?非常感谢。原始XML:架构(无限制):限制码: 最佳答案 这样做就可以了:-这是具有此模式的可接受的XML示例GGGGG 关于xml-如何向XML(XSD)模式中的复杂类型添加限制?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio