草庐IT

xsd-schema

全部标签

xml - 放置 XSD 的最佳位置

我们有一个接收XML字符串作为输入的网络服务。该服务所做(或应该做)的第一件事是根据预定义和商定的XML架构验证接收到的XML字符串。存储和访问此架构的最佳方式是什么?与网络服务位于同一位置的物理.xsd文件?Web服务代码文件中的常量字符串?项目资源文件中的字符串值?网络配置中的某处?在数据库中?我不认为选项(2)和(3)是最好的,因为架构可能会更改,然后我们需要更改代码。话又说回来,如果XML结构发生变化,我们无论如何都需要更改代码才能正确解析XML。谢谢! 最佳答案 我将仔细检查您的选项并针对每个选项提供一些意见。1.)Aph

java - xsd 验证失败,cvc-elt.1 : Cannot find the declaration of element

我在java中使用我的xsd验证我的xml:javax.xml.validation.SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema").newSchema(newjava.io.File(schemaPath)).newValidator().validate(newjavax.xml.transform.stream.StreamSource(newjava.io.FileInputStream(xmlPath)));我收到以下错误:org.xml.sax.SAXParseException;lineNumbe

java - 结合使用XML Schema和XML到JSON转换是否可行?

我必须指定一个JSON数据结构;数据结构将成为接口描述的一部分,数据将由JavaScript处理。为数据传输设置了JSON。在其他项目中,我们使用XML而不是JSON,为此我使用了丰富的XML模式。不幸的是,我现在不能这样做。我做了一些研究,发现JSONSchema。但是,这仍然是草稿状态,这使我在这种情况下使用它感到有些不安。我还遇到了thisquestion,讨论了如何将XML映射到JSON。org.json命名空间中的XMLclass中似乎有一个标准(?)转换。对于没有混合内容的XML文档来说,转换似乎很简单。因此,我们的想法是使用XMLSchema来描述数据结构,尽可能在服务器

python - xsd验证,获取无效的对象

我有一个很大的XML文件(3MB+),我有一个XSD来验证它。我正在使用python和LXML。我从这个脚本开始。哪个验证很好,包括给我行号。但问题是文件在一行上,所以当我验证所有我得到的是第1行上显示的错误。当我使用pretty-print为我拆分行时,它在第65535行达到最大值。谢谢! 最佳答案 Pretty-printyourXML向其中添加换行符。然后将其通过您的验证器以获得更有用的行号。编辑:在重新阅读您的问题时,我发现您使用了Notepad++添加换行符。但是LXML在验证XML时显然有大小限制。有关此问题的一般方法,

xml - XSD 指定一个只能在 XML 中使用一次的属性

拥有一个具有多个属性的复杂类型:如何限制leader属性在XML文件中只使用一次?所以以下不会验证(不能是两个领导者) 最佳答案 如果你给leader属性一个只有一个可能值的类型(例如,一个从boolean和allowsonlytrue),然后在包含person元素的parent元素级别添加一个unique约束,声明person元素必须具有其的唯一值leader属性。由于唯一约束仅适用于字段实际存在的元素,这将确保不超过一个人具有leader属性,并且当该属性存在时它必须为真。我认为在XMLSchema1.0中没有强制执行“至少一个

xml - 针对 xml 验证 xsd

刚学完xml和xsd。我制作了我的第一个xml文档,我只是想确保我正在使用xsd正确验证它。我的xml代码:jackhalsharrypotter我的xsd代码:我试过一个在线验证器,它说:Apseudoattributenameisexpected.现在怎么办? 最佳答案 应该是(你错过了一个“r”)。此外,namespaceURI区分大小写,因此xmlns:xs="http://WWW.W3.org/2001/XMLSchema"需要改成xmlns:xs="http://www.w3.org/2001/XMLSchema"

XML Schema 格式不正确,我的问题是什么?

我在检查有效性时遇到的错误是:Notvalid.Error-Line8,40:org.xml.sax.SAXParseException;lineNumber:8;columnNumber:40;s4s-elt-invalid-content.1:Thecontentof'#AnonType_xmtma'isinvalid.Element'element'isinvalid,misplaced,oroccurstoooften.`它所指的代码片段是:你能看出我做错了什么吗? 最佳答案 您不能将xs:element-Element作为

xml - 限制 xsd 类型 :any to xsd:string only?

所以我正在编写一个新的XSD,但遇到了一个小问题。现在我承认我不是最擅长这些的,但我本以为我所做的应该奏效,但事实并非如此。我所追求的是我有一个名为extraInfo的元素,这个元素最多可以有42个具有任何名称但只能是字符串类型的子元素。这是我所拥有的:我本以为,只要我将类型作为xsd:string传递,它应该只接受这些元素中的这种类型,但元素名称可以随意命名。但是我在的type属性下收到错误s4s-att-not-allowed:Attribute'type'cannotappearinelement'any'.我怎样才能得到它,以便我可以传入42个未知名称的元素,但将它们作为字符串

xml - 为 http ://www. w3.org/2001/XMLSchema 命名空间导入 XSD?

当引用另一个XSD中的定义时,我们对不同命名空间中的另一个XSD使用“导入”,对同一命名空间中的另一个XSD使用“include”。也就是说,我们在使用它之前不需要导入xmlns:xsd="http://www.w3.org/2001/XMLSchema。为什么?我想知道XSD怎么样模式可供应用程序使用---哪个文件包含此XSD?是因为它已经在应用程序的类路径中了吗?同样,我想知道如果我们创建的其他模式将在应用程序的类路径中,我们是否需要导入或包含? 最佳答案 xmlns:xsd="http://www.w3.org/2001/XM

c# - 控制名称格式的 XSD 到 C# 类

我正在处理一个XSD文件,该文件将大写字母用于元素名称和不一致的属性名称大小写。不幸的是,这无法更正,因为符合此模式的XML文件由硬编码为期望这些约定的程序读取和写入。我正在使用VisualStudio2013的xsd.exe工具将XSD文件转换为模型类,但是XSD逐字复制元素和类型名称并且仅应用[XmlElement]或[XmlAttribute]属性,当名称在C#中不合法时(例如当名称包含破折号字符时)。给定这个XML文件:因此,我有xsd.exe生成的输出,如下所示:publicpartialclassFOOBAR{publicFOOBARCHILDELEMENT[]CHILDE