小编pra*_*ima的帖子

如何在XSD中处理具有不同URI的多个名称空间

我有一个XML(first.xml),看起来像::

 <?xml version="1.0" encoding="utf-8"?>
 <saw:jobInfo xmlns:saw="com.analytics.web/report/v1.1">     
      <saw:jobStats>...........</saw:jobStats>    
       <saw:detailedInfo> .....</saw:detailedInfo>    
       <saw:fileInfo>..........</saw:fileInfo>
 </saw:jobInfo> 
Run Code Online (Sandbox Code Playgroud)

下面的XML(second.xml)与上面的相同,但具有不同的命名空间.

<?xml version="1.0" encoding="utf-8"?> 
 <soap:jobInfo xmlns:soap="urn://bi.webservices/v6">  
   <soap:jobStats>...........</saw:jobStats>
   <soap:detailedInfo> .....</saw:detailedInfo>    
   <soap:fileInfo>..........</saw:fileInfo>
 </soap:jobInfo> 
Run Code Online (Sandbox Code Playgroud)

因为我在xml中都有相同的元素和属性名称,所以我使用相同的xsd文件来验证两者.

XSD文件::

 <?xml version="1.0" encoding="utf-8" ?>  
 <xs:schema targetNamespace="com.analytics.web/report/v1.1"      
  xmlns="com.analytics.web/report/v1.1" 
  xmlns:saw="com.analytics.web/report/v1.1" 
  xmlns:soap="urn://bi.webservices/v6"
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified"
  attributeFormDefault="unqualified"> 
Run Code Online (Sandbox Code Playgroud)

在包含xmlns:soap ="urn://bi.webservices/v6"之后,对于second.xml的模式验证失败,说未知元素"soap:jobinfo".我四处寻找并发现targetNamespace值应该与命名空间URI相同.请让我知道如何为具有不同URI的两个不同命名空间使用相同的XSD.

xml xsd

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

标签 统计

xml ×1

xsd ×1