首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免地狱实现的XML验证

避免地狱实现的XML验证
EN

Stack Overflow用户
提问于 2014-10-09 15:04:25
回答 1查看 114关注 0票数 1

我非常不幸地与XML交叉,并且需要根据目前保存在XSD中的规则来验证XML数据。

问题是同一DOC的XML有3个版本,每个版本都有基于元素值的独立规则和子规则。

我想知道在过去几年中是否有任何nuget package thing可以用更好的引擎、语法或其他东西来验证XML,以避免使用旧的、不灵活的.NET垃圾。

我知道的一种方法是解析XML,检查值,例如版本,然后使用和XSD作为文件的那个版本。但有些规则适用于不同版本的相同元素,即男性/女性类型的问题。因此,从技术上讲,我将不得不从9个XSD文件开始,随着规则变得复杂,我将得到更多的文件。所有版本的规则都在使用中,这使得它更加复杂。

我看到一些东西从我的屏幕上弹出断言。但.NET不支持这一点。是否有某种验证引擎和语法。我真的只想要一个文件根据XML保存的数据应用规则。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-10 09:23:40

谢谢@kjhughes!这就是我所看到的,Schematron“断言”,但我认为这仅仅是为了像Perl一样。但进一步调查发现了Schematron.NET

下载文件时,它有一个基本的win验证程序,或者只需自己打开DLL项目,签出源代码并编译DLL。

然后在模式中,您可以这样声明它。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/po-schematron" xmlns="http://example.com/po-schematron" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:annotation>
    <xsd:appinfo>
      <schema xmlns="http://www.ascc.net/xml/schematron">

然后,您只需花一些时间阅读Schematron ISO并继续验证XML。即使你知道你真的不想..。但有时候你只需要。

如果您从未使用过Shematron或对XPath知之甚少,那么她的介绍就是对Shematron的介绍。它有一些示例代码和对整个过程的足够好的演练。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26281806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档