以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DOM/SAX/XPath 』 (http://bbs.xml.org.cn/list.asp?boardid=11) ---- 解析xml文件抛出SAXParseException异常,请问xml文档中是否允许使用<c:Tables>标记? (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=18198) |
-- 作者:gumpgz -- 发布时间:5/12/2005 11:13:00 AM -- 解析xml文件抛出SAXParseException异常,请问xml文档中是否允许使用<c:Tables>标记? 我解析的时powerdesigner生成的pdm文件,发现该文件也是xml文件, 其中都是<c:Tables>这样的标记,即字母+冒号+单词 我用dom4j解析总是出现如下异常: org.dom4j.DocumentException: Error on line 2 of document file:///D:/MyWork/generateconf/test.xml : 未声明的名称前缀:“c:Tables”。 Nested exception: 未声明的名称前缀:“c:Tables”。 at org.dom4j.io.SAXReader.read(SAXReader.java:482) at org.dom4j.io.SAXReader.read(SAXReader.java:264) at CompletePDM.main(CompletePDM.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78) Nested exception: org.xml.sax.SAXParseException: 未声明的名称前缀:“c:Tables”。 at org.apache.crimson.parser.Parser2.error(Parser2.java:3354) at org.apache.crimson.parser.Parser2.processName(Parser2.java:1844) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1671) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667) at org.apache.crimson.parser.Parser2.parse(Parser2.java:337) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at org.dom4j.io.SAXReader.read(SAXReader.java:465) at org.dom4j.io.SAXReader.read(SAXReader.java:264) at CompletePDM.main(CompletePDM.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78) 于是我将“c:”全部替换成“cccc”,其他的比如"a:"全部替换成“aaaa”,等等, 疑问,对<c:Tables>这样的标识不能直接处理么?必须得替换么? 如果可以直接处理,我该如何操作呢? 谢谢 |
-- 作者:gumpgz -- 发布时间:5/12/2005 12:14:00 PM -- 搞定了,是我自己偷懒,直接将pdm中<c:Tables>之间的内容copy出来,没有保留model定义, 加上model定义就可以了, <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"> |
-- 作者:gumpgz -- 发布时间:5/12/2005 12:27:00 PM -- 但是有一个新的问题,我把<Model>和<c:Tables>切出来,自己建立一个xml文件,是没有错的,但是要解析整个pdm就会出现错误了: org.dom4j.DocumentException: Error on line 1 of document file:///D:/MyWork/generateconf/test.pdm : 字符转换错误:“Malformed UTF-8 char -- is an XML encoding declaration missing?”(行号可能太小)。 Nested exception: 字符转换错误:“Malformed UTF-8 char -- is an XML encoding declaration missing?”(行号可能太小)。 at org.dom4j.io.SAXReader.read(SAXReader.java:482) at org.dom4j.io.SAXReader.read(SAXReader.java:264) at CompletePDM.main(CompletePDM.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78) Nested exception: org.xml.sax.SAXParseException: 字符转换错误:“Malformed UTF-8 char -- is an XML encoding declaration missing?”(行号可能太小)。 at org.apache.crimson.parser.InputEntity.fatal(InputEntity.java:1100) at org.apache.crimson.parser.InputEntity.fillbuf(InputEntity.java:1072) at org.apache.crimson.parser.InputEntity.isXmlDeclOrTextDeclPrefix(InputEntity.java:914) at org.apache.crimson.parser.Parser2.maybeXmlDecl(Parser2.java:1183) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:653) at org.apache.crimson.parser.Parser2.parse(Parser2.java:337) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at org.dom4j.io.SAXReader.read(SAXReader.java:465) at org.dom4j.io.SAXReader.read(SAXReader.java:264) at CompletePDM.main(CompletePDM.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78) 我切出来的xml,格式如下: 完成的pdm的结构为:/Model/o:RootObject/c:Children/o:Model/c:Tables 是不是pdm中有什么非法字符串呢? |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
109.375ms |