标签: xml-validation

启用片段级一致性时,是否忽略XML Schema验证?

从我与XML和Schema验证的逗留,似乎当为XMLReader实例启用了片段级一致性时,XML源将停止针对任何包含的Schema进行验证.

但是,我无法从MSDN文档中验证这一点,因为它似乎没有根据一致性级别描述XSD架构行为.此外,如果我认为这个问题是真的,我找不到它的解决方法.

我想知道如何针对XSD架构验证XML 片段.

在我的情况下,我正在验证XHTML 1 Strict Schema.由于像<center>这样弃用的HTML标签没有被标记为无效,这也是我认为片段一致性忽略模式的部分原因.此外,当我在同一场景中使用文档级一致性时,成功标记了有效性错误.

对于我正在使用的验证方案类型的代码示例,请参阅此内容.

.net c# xsd xml-validation

5
推荐指数
1
解决办法
954
查看次数

Python挂在带有apache + mod_wsgi的lxml.etree.XMLSchema(树)上

Python依旧

lxml.etree.XMLSchema(tree)

当我在apache server + mod_wsgi上使用它时(Windows)

当我使用Django dev服务器 - 一切正常

如果您了解针对XSD的其他不错的XML验证解决方案,请告诉我

更新:

我正在使用soaplib,它使用lxml

logger.debug("building schema...")
self.schema = etree.XMLSchema(etree.parse(f))

logger.debug("schema %r built, cleaning up..." % self.schema)

我在apache日志中看到"构建模式...",但我没有看到"架构%r已构建,清理......"

更新2: 我使用MSVS 2010 visual C++构建了lxml 2.3; 之后它在这条线上崩溃了

self.schema = etree.XMLSchema(etree.parse(f))
在httpd.exe中0x7c919af2处的未处理异常:0xC0000005:访问冲突写入位置0x00000010.

python apache lxml mod-wsgi xml-validation

5
推荐指数
1
解决办法
994
查看次数

在Java中针对XSD验证XML /获取schemaLocation

如何使用Java中的XSD验证XML文件?我们事先不知道架构.我希望能够获得schemaLocation,下载XSD,缓存它,然后执行实际验证.

问题是,使用javax.xml.parsers.DocumentBuilder/ DocumentBuilderFactoryclasses我似乎无法schemaLocation提前获得.这是什么诀窍?我应该研究哪些课程?

也许我可以使用更合适的API?整个问题是我们需要动态验证,而不必(必须)在本地使用XSD.

如何获得schemaLocationXSD文件中定义的URL ?

我知道你可以设置功能/属性,但这是另一回事.我需要schemaLocation先从XSD 获得.

请指教!

java xsd xml-validation xml-parsing

5
推荐指数
1
解决办法
4065
查看次数

在FireMonkey中针对XSD验证XML文件

我正在开发一个跨平台的应用程序(适用于Windows,Mac等)以及32位和64位计算机.我有很多XML文件需要针对他们的XSD进行验证.

在Delphi XE3中有没有办法做到这一点?

我尝试过DTD验证,但我总是遇到"DTD禁止"错误.我也尝试过很多网站上提到的解决方案来解决这个错误,但我没有成功.

提前致谢.

以下是我用过的代码......

function TForm2.ValidateXML(const xmlFile : TFileName) : boolean;
 var
 xmlDoc: TXMLDocument;
begin
result := false;
  xmlDoc := TXMLDocument.Create(nil) ;
  try
    xmlDoc.ParseOptions := [poResolveExternals, poValidateOnParse];
   try
      xmlDoc.LoadFromFile(xmlFile) ;
     xmlDoc.Active := true; //this will validate
     result := true;
   except
     on EX : EDOMParseError do
     begin
     ShowMessage('Invalid XML: ' + Ex.Message) ;
   end;
   end;
 finally
   xmlDoc := nil;
 end;
end;
Run Code Online (Sandbox Code Playgroud)

xml delphi xml-validation xsd-validation firemonkey

5
推荐指数
1
解决办法
1255
查看次数

元素必须没有字符或元素信息项[children],因为类型的内容类型为空

当我在这个项目上工作时,我不断收到错误说:

元素'Customer'必须没有字符或元素信息项[children],因为类型的内容类型为空.

我不确定为什么这不起作用看到我按照笔记看起来像这样:

<xs:element name="Customer" type="xs:string">  
  <xs:complexType>  
    <xs:attribute name="id" type="xs:integer" use="required"/>  
  </xs:complexType>  
</xs:element>
Run Code Online (Sandbox Code Playgroud)

我知道它说我不能type="xs:string"在那里,但那我怎么做它必须有一个字符串?

xml xsd xml-validation

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

src-resolve:无法将名称'ds:Signature'解析为'element declaration'组件

我想使用XSD文件进行模式验证.当我将XSD文件导入Eclipse而不运行验证类时,我有以下错误:

src-resolve:无法将名称'ds:Signature'解析为'element declaration'组件

我是XML和XSD验证过程的新手.虽然我在谷歌上寻找类似的问题,但我无法弄清楚这里有什么问题.

XSD文件如下:

 <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xerces="http://xerces.apache.org"
        xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
        xmlns:abc="http://abc.123.com" targetNamespace="http://abc.123.com"
        xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" elementFormDefault="qualified"
        attributeFormDefault="unqualified">
        <xs:import namespace="http://uri.etsi.org/01903/v1.3.2#" schemaLocation="XAdES.xsd"/>
        <xs:import namespace="http://uri.etsi.org/01903/v1.4.1#" schemaLocation="XAdESv141.xsd"/>
        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
    <xs:complexType name="headerType">
        <xs:sequence>
            <xs:element name="doorNumber" type="xs:int"/>
            <xs:element ref="ds:Signature"/>
        </xs:sequence>
    </xs:complexType>
Run Code Online (Sandbox Code Playgroud)

我该如何修改XSD来修复此错误?

xml xsd xml-validation

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

错误:未绑定属性"xsi:schemaLocation"的前缀"xsi"

我在针对XSD验证XML时遇到问题.验证器抛出

与元素类型"mpreader"相关联的属性"xsi:schemaLocation"的前缀"xsi"未绑定.

这是一个XML剪辑

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<mpreader xmlns="C:\Users\Dallan\Desktop\Mpreader\" xmlns:xs="http://www.w3.org/20one/XMLSchema-instance" 
 xsi:schemaLocation="C:\Users\Dallan\Desktop\Mpreader\mpreaderschemafinal.xsd"> 
                <firmware>"3.4.16"</firmware>  

                <hardware>"2.3.53"</hardware>  

                <sn>"234-1three5"</sn>

                <devices> 
            </devices>
        </mpreader>
Run Code Online (Sandbox Code Playgroud)

这是XSD剪辑

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="C:Users/Dallan/Desktop/Mpreader/" elementFormDefault="qualified" targetNamespace="C:\Users\Dallan\Desktop\Mpreader\">

<xs:element name="mpreader">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
    <xs:element name="firmware" type="xs:string"/>
    <xs:element name="hardware" type="xs:string"/>
    <xs:element name="sn" type="xs:string"/>
    <xs:element name="devices">
        <xs:complexType>
        <xs:sequence maxOccurs="unbounded">
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

xml xsd xml-validation

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

至少一个在XSD中没有重复的XML元素

我正在尝试创建一个验证场景,我想从列表中选择至少一个非重复元素.

在某些地方:

<xs:choice minOccurs="1" maxOccurs="7">
    <xs:element name="Sunday"/>
    <xs:element name="Monday"/>
    <xs:element name="Tuesday"/>
    <xs:element name="Wednesday"/>
    <xs:element name="Thursday"/>
    <xs:element name="Friday"/>
    <xs:element name="Saturday"/>
</xs:choice>
Run Code Online (Sandbox Code Playgroud)

但是,上述解决方案允许重复元素出现在列表中,这是我不想要的.

有效 XML的示例:

<Monday/>
<Tuesday/>
<Friday/>
Run Code Online (Sandbox Code Playgroud)

无效 XML的示例:

<Monday/>
<Monday/>
Run Code Online (Sandbox Code Playgroud)

这可以通过XSD实现,而无需对所有可能的序列进行硬编码吗?如果是这样的话?

xml xsd xml-validation

5
推荐指数
1
解决办法
1162
查看次数

xs:anyURI可以在XSD中包含方括号吗?

XML验证失败,错误:

元素'CategoryPageUrl':' http://www.example.com/products?my_query_parameter [] = 45'不是原子类型'xs:anyURI'的有效值.,第29行

Feed看起来像这样:

    <Category>
        <ExternalId>1234</ExternalId>
        <Name>Name</Name>
        <CategoryPageUrl>http://www.example.com/products?my_query_parameter[]=45</CategoryPageUrl>
    </Category>
Run Code Online (Sandbox Code Playgroud)

适当的架构看起来像这样:

<xs:complexType name="CategoryType">
  <xs:all>
    <xs:element name="ExternalId" type="ExternalIdType" minOccurs="0"/>
    <xs:element name="Name" type="xs:string" minOccurs="0"/>
    <xs:element name="CategoryPageUrl" type="xs:anyURI" minOccurs="0"/>
  </xs:all>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

python xml xsd xml-validation xsd-validation

5
推荐指数
1
解决办法
407
查看次数

如何修复错误:根元素后面的文档中的标记必须格式正确

我把我的代码放在XML验证网站上,它给了我这个错误:

第8行:4根元素后面的文档中的标记必须格式正确.

有问题的<xsl:output method = "html" doctype-system = "about:legacy-compat"/>行是,行.

XML

<?xml version="1.0"?>

<!-- Fig. 15.21: sorting.xsl -->
<xsl:stylesheet version = "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>

<!-- write XML declaration and DOCTYPE DTD information -->
*<xsl:output method = "html" doctype-system = "about:legacy-compat" />*

 <!-- match document root -->
 <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> 
 </xsl:template>
Run Code Online (Sandbox Code Playgroud)

xml xslt xml-validation xml-parsing

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

标签 统计

xml-validation ×10

xml ×7

xsd ×7

python ×2

xml-parsing ×2

xsd-validation ×2

.net ×1

apache ×1

c# ×1

delphi ×1

firemonkey ×1

java ×1

lxml ×1

mod-wsgi ×1

xslt ×1