用Schema对xml文件进行校验,xml文件根节点的xmlns必须跟xsd文件根节点的targetNamespace的值一样(比如下面的http://www.w3school.cn),否则校验失败,真恼火我只想校验各个节点,xmlns是xml文件的命名空间,是制作xml文件的人取名的,我没法预知,也不想限定。哪位高手处理过这种事情呢? 还请赐教。-----------------------xml文件------------------------
<?xml version="1.0"?>
<note xmlns="http://www.w3school.cn">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting this weekend!</body>
</note>-----------------------xsd文件------------------------
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.cn"
elementFormDefault="qualified"> <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>
<?xml version="1.0"?>
<note xmlns="http://www.w3school.cn">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting this weekend!</body>
</note>-----------------------xsd文件------------------------
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.cn"
elementFormDefault="qualified"> <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>
解决方案 »
- 我认为最好的java视频教程
- jqGrid能否求一列的和值,并在表格的最下方显示
- 连接数据库问题
- html:text有类似bean:write format的功能吗。
- j2ee错误 大家进来看一下?
- 研究各大公司(SUN,微软,IBM,HP)身份验证和单点登录(SSO)系统得群,希望有兴趣得人都来研究一下!qq群号码:9993425
- 请教各位前辈配置J2EE环境
- 问一下RMI中的registry器用和我自己定义的Context有什么不同,为什么我自己定义了一个JNDI,还要创建一个registry,急,谢谢
- ■■高薪诚聘J2EE程序员(5000-10000元)可兼职,限上海,北京,深圳!!!
- java 类加载器加载类的时候类的路径带有$是什么意思
- 各位大侠速救!java用poi按书签读取word文件
- 如何验证手机号码是否是移动手机号码?请问有第三方的接口可以调用吗?
你只能修改xsd文件,将
targetNamespace="http://www.w3school.cn"
这一行去掉。
这一行去掉,那么xml文件中就不能有xmlns了,否则验证同样失败,我不不需要也不能做这个限定。
这是不可能的,xml文件不是我做的,是客户做的,不同的厂商会有不同的xmlns,我没法限定。
<xs:element name="note"> 怎么没有定义类型
你在手上放几个XSD文件版本,不同的XSD文件针对不同的客户使用。
楼上的大哥,主要问题是targetNamespace没法和客户提供的XML文件中的一致,这个客户范围很大,各自有自己的规范,能约束就不用在这里发帖了。