标签: xml-validation

针对模式的XML(.xsd)提要验证

我有一个XML文件,我有一个XML模式.我想根据该模式验证该文件,并检查它是否符合该模式.我正在使用python,但如果在python中没有这样有用的库,我会对任何语言开放.

这里最好的选择是什么?我担心我能以多快的速度运行它.

python xml xsd xml-validation python-2.7

18
推荐指数
1
解决办法
1万
查看次数

如何解析无效(错误/不良格式)的XML?

目前,我正在开发一项功能,涉及解析从另一个产品收到的XML.我决定对一些实际的客户数据进行一些测试,看起来其他产品允许来自用户的输入被认为是无效的.无论如何,我仍然需要尝试找出解析它的方法.我们正在使用javax.xml.parsers.DocumentBuilder,我收到的输入错误如下所示.

<xml>
  ...
  <description>Example:Description:<THIS-IS-PART-OF-DESCRIPTION></description>
  ...
</xml>
Run Code Online (Sandbox Code Playgroud)

正如您所知,描述中的内容似乎是无效的标记(<THIS-IS-PART-OF-DESCRIPTION>).现在,已知此描述标记是叶标记,并且不应在其中包含任何嵌套标记.无论如何,这仍然是一个问题,并产生例外DocumentBuilder.parse(...)

我知道这是无效的XML,但它可以预测无效.有关解析此类输入的方法的任何想法?

java xml xml-validation xml-parsing

17
推荐指数
1
解决办法
1万
查看次数

什么是XML信息集以及它与XML文档有什么不同?

我试过阅读http://www.w3.org/TR/xml-infoset/维基百科条目.但坦率地说,我仍然不确定区别是什么.

报价单 :

如果XML文档格式良好并且满足命名空间约束,则它具有信息集.为了获得信息集,不要求XML文档有效.

从维基百科条目似乎没有意义.非有效文档如何具有任何语义,因此它如何成为"信息"集?

什么是这个"信息集"

格式良好,满足命名空间约束

XML有?它本身以何种方式有用.换句话说,从语义上讲,为什么定义XML信息集是必要的?是否有任何无法用XML表示的信息?如果是这样,我可以看到XML Infoset的限制集,但是如果不确定XML Infoset与术语"信息"一样没有意义吗?

谢谢你的有趣答案: 我仍然无法理解为什么Xml信息集有任何目的而不是术语信息集.但是你们给了我这个问题的直接答案.

xml xml-validation well-formed infoset

16
推荐指数
2
解决办法
4821
查看次数

XML验证:"在这一点上没有预期的子元素"

我正在尝试根据给定的XML文件开发XSD语法.给定的XML文件itemList.xml如下所示.

<?xml version="1.0" encoding = "utf-8"?>
<itemList 
    xmlns="http://www.w3schools.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://www.w3schools.com  itemList.xsd" >
     <item>spoon</item>  
     <item>knife</item>
     <item>fork</item>  
     <item>cup</item>
</itemList>
Run Code Online (Sandbox Code Playgroud)

我开发的itemList.xsd文件如下所示.

<schema 
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:co="http://www.w3schools.com"
    targetNamespace="http://www.w3schools.com" 
    elementFormDefault="qualified">
<simpleType name="itemType">
    <restriction base="string"/>
</simpleType>
<complexType name="itemListType">
    <sequence>
        <element name="item" type="co:itemType"/>
    </sequence>
</complexType>
<element name="itemList" type="co:itemListType"/>
</schema>
Run Code Online (Sandbox Code Playgroud)

当我使用此XML验证器针对XSD 验证XML时,我收到错误

Cvc-complex-type.2.4.d: Invalid Content Was Found Starting With Element 'item'. No Child Element Is Expected At This Point.. Line '6', Column '12'.
Run Code Online (Sandbox Code Playgroud)

看来我应该重写我complexTypeitemList.xsd,但我不知道该怎么做.非常感谢任何可以提供帮助的人.

xml xsd xml-validation

15
推荐指数
2
解决办法
3万
查看次数

使用CXF Webservice进行服务器端XML验证

我正在开发Apache CXF Web服务(使用JAX-WS,通过SOAP).服务本身非常简单:接收请求,将请求插入数据库,并返回插入是否成功.我想依靠XML验证来对请求强制执行许多约束.

所以,我的问题.如何将详细的验证错误返回给我的服务客户?我通过配置我的端点在服务器端进行了验证.

<jaxws:endpoint id="someEndpoint" implementor="#someImpl" address="/impl">
    <jaxws:properties>
        <!-- This entry should- ideally- enable JAXB validation
        on the server-side of our web service. -->
        <entry key="schema-validation-enabled" value="true" />
    </jaxws:properties>
</jaxws:endpoint>
Run Code Online (Sandbox Code Playgroud)

我已经探索过在服务器上使用拦截器(例如BareInInterceptor),并以某种方式捕获SAXParseExceptions来包装它们并将它们发送到客户端.这种方法看起来有点复杂,但如果XML无效,我需要以某种方式为客户端提供一个行号.我应该使用拦截器来揭露异常吗?

我对这个技术堆栈并不是很有经验,只是进入Web服务 - 你们给我的任何指针都会非常感激.

web-services cxf jax-ws jaxb xml-validation

14
推荐指数
1
解决办法
2万
查看次数

使用xPath时是否可以忽略c#中的命名空间?

我可以获得以下任一xml:

<?xml version="1.0" encoding="UTF-8"?>
<dc:video xmlns:dc="http://purl.org/dc/elements/1.1/">
  <dc:title>
    A vid with Pete
  </dc:title>
  <dc:description>
  Petes vid
  </dc:description>
  <dc:contributor>
    Pete
  </dc:contributor>
  <dc:subject>
    Cat 2
  </dc:subject>
</dc:video>
Run Code Online (Sandbox Code Playgroud)

要么:

<?xml version="1.0" encoding="UTF-8"?>
<video>
  <title>
    A vid with Pete
  <title>
  <description>
  Petes vid
  <description>
  <contributor>
    Pete
  <contributor>
  <subject>
    Cat 2
  <subject>
</video>
Run Code Online (Sandbox Code Playgroud)

我试图访问一个元素:

string title = xmlDocFromOneLan.SelectSingleNode(@"/video/title").InnerXml;
Run Code Online (Sandbox Code Playgroud)

但是对于xml文档1,它由于命名空间而无法工作.

c#中有没有办法使用xpath忽略命名空间?我只是想选择我真的不关心命名空间的节点.(命名空间可以是DC DN或DCN等).

"/视频"

会读到:

<video></video>
or
<dc:video></video>
or
<dcn:video></video>
Run Code Online (Sandbox Code Playgroud)

xml xpath xsd xml-validation

14
推荐指数
1
解决办法
1万
查看次数

根据NodeJS中的模式(xsd)验证XML

NPM中的任何XML库是否支持针对XSD架构验证XML?

我会看自己,但是:

$ npm search xml 2>/dev/null | wc -l
212
Run Code Online (Sandbox Code Playgroud)

注意:xsd包不是它看起来node-xerces像是破碎/空.

xml xsd xml-validation node.js

13
推荐指数
1
解决办法
1万
查看次数

是否有可用于HTML5的xhtml.xsd等效项?

我正在开发一个基于Mozilla XULRunner的应用程序.

我正在使用xhmtl1-strict.xsdW3C提供的属性来获取.现在要求将<video>标记添加到我的应用程序,但我的应用程序不支持任何HTML5元素或属性.

那么,有什么建议吗?

html5 xsd porting xulrunner xml-validation

12
推荐指数
2
解决办法
4986
查看次数

JAXB:当使用XML模式(.xsd)验证XML文件时,如果验证失败,我可以知道导致它的XML标记吗?

所以当我使用XML模式验证XML文件时,我只能知道它是失败还是通过,如果我想知道它为什么失败,我需要查看错误消息,如

[org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'City'. One of '{Address1}' is expected.]
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,它失败,因为我缺少标记Address1.我的问题是当验证失败时,我能知道导致失败的标签吗?这是因为我需要为每个重要的缺失标记处理不同的故障.现在我的想法是

FileInputStream inputStream = null;
try{
    SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema schema = sf.newSchema(new File(config.getXmlSchema()));
    JAXBContext context = JAXBContext.newInstance(PackageLabel.class);
    Unmarshaller unmarshaller = context.createUnmarshaller();
    unmarshaller.setSchema(schema);
    inputStream = new FileInputStream(xmlFile);
    pl = (PackageLabel) unmarshaller.unmarshal(inputStream);
} catch (JAXBException e) {
    if(pl.getAddress1() == null){
         System.out.println("Invalid Mailing Address");
    }
    //EDIT: CANNOT DO THIS, SINCE pl  IS NULL AT THIS POINT
    //Some more logics …
Run Code Online (Sandbox Code Playgroud)

java xsd jaxb xml-validation

12
推荐指数
1
解决办法
6818
查看次数

使用 VS Code 验证 XML

我是 BBEdit & Co 的 Mac 用户。现在我使用 VS Code 使用 Windows。我正在寻找一种简单的解决方案来使用 VS Code 验证 XML。有扩展吗?

谢谢!

xml validation xml-validation visual-studio-code

12
推荐指数
3
解决办法
3万
查看次数