java - 如何忽略 XML Schema 导入并在本地提供源?
问题描述
所以我正在尝试使用 XML 创建者提供的模式来验证 XML 文件。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newDefaultInstance();
dbFactory.setNamespaceAware(true);
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
StreamSource[] resources = new StreamSource[3];
resources[0] = new StreamSource(new FileInputStream("data/TSL_schema.xsd"));
resources[1] = new StreamSource(new FileInputStream("data/xml.xsd"));
resources[2] = new StreamSource(new FileInputStream("data/xmldsig-core-schema.xsd"));
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(resources);
schema.newValidator().validate(new StreamSource(file));
dbFactory.setSchema(schema);
this.document = dBuilder.parse(file);
第一个资源文件,即TSL_schema.xsd
包含以下导入语句。
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
我在另一篇 StackOverflow 帖子中读到,W3C 正试图限制这些网页的流量,因此我假设上面的代码示例需要大约 40 秒。执行。所需的进口分别是resources[1]
和resources[2]
。我的问题是是否有办法忽略此类导入语句,并在本地加载文件。
解决方案
推荐阅读
- javascript - 我怎样才能使这个活跃的点击?
- arduino-ide - 索尼 Spresense 硬故障故障排除
- c# - 列表框。如何增加高度项?
- apache-spark - Parquet 如何处理 SparseVector 列?
- maven - 生成的文件在错误的地方
- sql - 在 m:m 关系中查找第一次出现的字符串
- go - ++ go 中映射键循环的运算符
- css - 如何使用引导程序居中对齐按钮?
- python - 如何将数据框转换为“ColumnName1 | Value1 \r\n ColumnName2 | Value2 \r\n ColumnName3 | Value3”等
- google-cloud-platform - 是否可以使用 Google Cloud Functions 进行蓝绿色部署?