当前位置: 首页 > 知识库问答 >
问题:

android中的xml验证器(xsd)

林鹏鹍
2023-03-14

我有一个在Android中使用API10(2.3.3版本)的项目,我有一个问题是用xsd文件验证xml。这是我的代码:

public static Document buildDoc(String xml, String xsd){
     // parse an XML document into a DOM tree
    Document document = null;

   try {            

       DocumentBuilderFactory parserFactory = DocumentBuilderFactory.newInstance();
        parserFactory.setNamespaceAware(true);
        DocumentBuilder parserdb = parserFactory.newDocumentBuilder();
        doc = parserdb.parse(new InputSource( new StringReader(xml)  ));

       SchemaFactory factory = SchemaFactory.newInstance(
                      XMLConstants.W3C_XML_SCHEMA_NS_URI);     //here the emulator raises an exception


        Source schemaFile = new StreamSource(new File(xsd));
        Schema schema = factory.newSchema(schemaFile);


        Validator validator = schema.newValidator();

        // validate the DOM tree
        validator.validate(new DOMSource(doc));
        System.out.println("Validation OK!");
    } catch (SAXException e) {
        // instance document is invalid!
             System.err.println("Validation ERROR!");
            e.printStackTrace();

    } catch (ParserConfigurationException e) {
                    // TODO Auto-generated catch block
             System.err.println("Validation ERROR!");
                    e.printStackTrace();
    } catch (IllegalArgumentException e) {
                    // TODO Auto-generated catch block
             System.err.println("Validation ERROR!");              
            } catch (IOException e) {
                    // TODO Auto-generated catch block
                     System.err.println("Validation ERROR!");
                    e.printStackTrace();

            }

    return doc;

}

我的Eclipse模拟器抛出一个异常:E/AndroidRuntime(4770):由:java.lang.IllegalArgumentException引起:http://www.w3.org/2001/XMLSchema

在这一行中:SchemaFactory factory=SchemaFactory.newInstance(XMLConstants.w3c_XML_Schema_NS_URI);

为什么??

共有1个答案

松建本
2023-03-14

因为您的平台不支持XML模式。

 类似资料:
  • 主要内容:形式良好的 XML 文档,验证 XML 文档,XML DTD,XML Schema,一个通用的 XML 验证器拥有正确语法的 XML 被称为"形式良好"的 XML。 通过 DTD 验证的XML是"合法"的 XML。 形式良好的 XML 文档 "形式良好"的 XML 文档拥有正确的语法。 在前面的章节描述的语法规则: XML 文档必须有一个根元素 XML元素都必须有一个关闭标签 XML 标签对大小写敏感 XML 元素必须被正确的嵌套 XML 属性值必须加引号 <?xml version=

  • 以下是Struts2中可用的各种类型的字段级别和非字段级别验证的列表 - 日期验证员 <field name = "birthday"> <field-validator type = "date"> <param name = "min">01/01/1990</param> <param name = "max">01/01/2000</param>

  • 问题内容: 我一直在尝试找出如何检查XML文件的语法,确保所有标签均已关闭,没有随机字符等。目前,我所关心的是确保在XML文件中没有损坏的XML。文件。 …但是我意识到我不想验证XML文件的结构;我 不想 针对XML Schema(XSD) 进行 验证…我只想检查XML语法并确定它是否正确。 问题答案: 您可以检查是否是一个XML文档 格式良好的 使用下面的代码: 上面的代码中引用的类如下: 这来

  • 我在验证xml和xsd时遇到问题。我从xsd模式中得到这个错误。 src解决方案。4.2:解析组件“urn:id”时出错。检测到“urn:id”位于命名空间“urn:schemas microsoft com:xml-diffgram-v1”中,但此命名空间中的组件无法从架构文档中引用virtual://server/schema.xsd。如果名称空间不正确,可能需要更改“urn:id”的前缀。如

  • 类定义为: 要加载的xml示例部分: 我创建了一个验证收集器,以显示针对架构解封xml文件过程中所有验证错误,但结果令人困惑:验证收集器将继承我的RemoteHost的每个类的验证错误显示为: 元素“host firstsubtype”不能有字符或元素信息项[children],因为该类型的内容类型为空。 元素“Other HostType”必须没有字符或元素信息项[childrens],因为该类

  • 我在验证xml文件时遇到问题。在我的xml文件中,xsi:schemaLocation=“”指向xsd文件。不幸的是,这个xsd文件加载了模式依赖项。他们都指向一些网站。因此,验证失败。所有工具和库都失败,外汇xmlspy。当我指向xml文件中的xsi:schemalocation=“”本地xsd(所有依赖项都是本地的)时,验证工作很好。 我的问题与javax.xml.validation有关,我