草庐IT

XML 架构 : element with attributes and text with restrictions

我是XMLSchema的初学者,我正在尝试解决一个(在我看来)相当简单的问题:我想匹配表单中的标签sometext即具有文本和属性的标签。基本上,我知道如何使用extension工具完成此操作。这似乎相当不直观,但有效。这是基本的习语:不过,我也想对text和attribute进行限制!文本不应超过一定长度,属性应为一定范围内的整数。我怎样才能做到这一点?貌似我在使用扩展时不能对文本使用限制。 最佳答案 使用而不是扩展。您可能希望单独声明简单类型并在其他构造中引用它们。编辑:抱歉占用我的时间。昨天去参加了一些事件,结果一如既往地在我

XML 架构 : define type of types

我想定义一个模式,其中包含指定XML模式类型的元素。这个问题可能与XMLSchemaforschemas有关还有这个question.这是我目前所拥有的:数据类型是:我不想声明数据类型,而是想在Schemaforschemas中使用localSimpleType或者至少simpleRestrictionType但我的XML模式编辑器(VisualStudio)似乎无法识别这些类型。我需要引用另一个XML模式文档吗?我真的很想避免定义整个XMLSchemasimpleType元素及其用于限制的子标签等。 最佳答案 我认为您应该能够编写

xml - 基于多个元素定义唯一约束

这是我的XML的简化版本:ZBM360ZBM360我希望这个XML不被验证,因为Group/Specie/Length的值是相同的。所以我想在我的XSD文件中添加一个唯一约束。我有这个独特的约束:然而,这似乎并不正确。我为此约束尝试了几个位置,但文档有效。我的XSD文件似乎是有效的,并且会出现任何其他XML错误。这是我的XSD的完整副本,它具有完整的属性名称,因此与上面的简化版本存在一些差异。我将不胜感激。 最佳答案 您的字段xpath表示属性(@Group,...),而您所需的关键字段是元素。将您的架构更改为:

xml - 是 xs :choice an equivalent of C++ enumeration?

我们通过MSXML4完成了很多序列化。当我们序列化C++枚举时,我们使用一个表将每个可能的值转换为一个字符串,并将该字符串存储为一个属性值。当我们反序列化时,我们读取该属性值,将其与表中的所有项目进行比较并检索相应的枚举值。如果找不到,我们会引发错误。为了便于通过外部程序创建XML,我们发布了所有相关数据类型的XML架构。枚举的属性定义如下://otherfieldshere它可以工作,但不包含可能的字符串值的定义。我如何向这个定义添加可能的值?我为此使用xs:choice吗? 最佳答案 不,xs:choice为模式提供信息“在这个

c++ - XSD : How to make a polymorphic "list"?

我正在尝试构建一个元素类型,该元素类型保留change元素类型的列表,该元素类型是其他几个子类型的基本类型。我得到了这段代码:Listofchanges.Genericorspecifictypeofchange.Changethatwillactivateanelementordonothingifalreadyactivated.Changethatwilldeactivateanelementordonothingifalreadydeactivated.Changethatwillactivatetheelementifdeactivatedordeactivateitifac

xml - 将限制和属性添加到 complexType

到一个简单的元素type="xs:int"我想添加一个限制和一些属性。但是,我看到的唯一方法是分两步:声明一个命名(全局)类型并将所有限制放在命名类型中引用base中的命名类型的并将属性添加到扩展节点。如果我可以避免声明全局命名类型,因为模式是动态生成的,那么在本地指定所有限制会更清晰。例如。像这样:2或者在字符串类型的情况下:不幸的是,像这样的“组合”声明似乎是不允许的。 最佳答案 不可能,请复习:Havingbothanattributeandarestrictiononanelementinxmlschema你回答。

xml - JAXB xjc - [错误] 意外 <xs :schema> appears at line 2 column 101

我是jaxb初学者。我正在尝试运行xjc以从模式生成java类。我在文件顶部有一个具有以下格式的示例.xsd文件我以本教程为指导jee5tutorial我运行以下命令来尝试解析模式并生成java类xjc-nv/home/tommy/xsds/my.xsd但它总是提示模式标记,我会假设模式必须在这里吗?[ERROR]Unexpectedappearsatline2column101非常感谢任何帮助。 最佳答案 分配给xs的命名空间XML架构的前缀错误。应该是http://www.w3.org/2001/XMLSchema而不是urn:

java - xs :any in xs:all tag for xsd

我有一个场景,我需要一个xsd,用于验证一些没有共同点的xml。例如,xml1:......xml2:....我需要一个通用的xsd,以便验证具有“requiredTag”的两个xml的共同点并读取其值。我尝试使用但它仅在xs:sequence中受支持而不是xs:all.我的requiredTag可以在myTag下的任何位置.我想使用这个xsd创建使用jaxb的类来读取值。感谢任何帮助。提前致谢。:) 最佳答案 如果您可以使用XSD1.1进行验证,则可以使用:...不幸的是,这在XSD1.0中失败了,因为它违反了UniquePart

python - 使用 Python 将 XML 模式定义解析为 CSV

我想将XML架构定义的元素解析为CSV文件以供记录和分析。我的XSD采用以下形式;对于给定的元素名称,我想创建一个包含元素1、元素2、元素3等的CSV。我已经尝试过Pythonlxml库,但还不能通过单个元素访问/过滤。importxml.etree.ElementTreeasETtree=ET.parse('doc.xsd')root=tree.getroot()forchildinroot:printchild.tag,child.attrib 最佳答案 以下代码显示了如何在XSD中搜索元素名称。fromlxmlimportet

xml - XSD 断言无法识别

我有一个XSD,我想在其中使用xs:assert语句。问题是我不知道如何使断言功能对我可用。我正在使用VisualStudio编写它,它得到一条蓝线,表示它不支持assert元素。我的XSD看起来像这样:ClientProductTypeClientbenefitbasistype 最佳答案 问题是xs:assert需要XSD1.1,而MicrosoftVisualStudio只支持XSD1.0。您必须使用支持XSD1.1的XML处理器,例如以下之一:Xerces-JwithPsychoPathXPath2.0SaxonEEAlto