- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在用 Java 验证 XML 文件时遇到问题,我不断收到“无效类型”错误。我一直在谷歌搜索并找到了一些 SO 线程,它们告诉我在 XML 中添加 namespace 并在各处添加“ns:”,但无济于事。
XML:
<ns:Content xmlns:ns="http://namespace">
<ns:Request>
<ns:FromDateTime>20130726161606</ns:FromDateTime>
<ns:RemainderOffset/>
<ns:MaxResults>100</ns:MaxResults>
</ns:Request>
<ns:Response>
<ns:Status>
<ns:Code>200</ns:Code>
</ns:Status>
<ns:Remainder>
<ns:Count>2828</ns:Count>
<ns:Offset>126690959</ns:Offset>
</ns:Remainder>
<ns:Items>
<ns:Item id="126752560" itemHash="-1686318559">
<ns:Title>[…]</ns:Title>
<ns:Description>[…]</ns:Description>
<ns:PubDate>Thu, 05 Sep 2013 06:00:27 GMT</ns:PubDate>
<ns:Uri>[…]</ns:Uri>
<ns:Resource>[…]</ns:Resource>
<ns:Keywords>
<ns:Keyword>[…]</ns:Keyword>
</ns:Keywords>
</ns:Item>
</ns:Items>
</ns:Response>
</ns:Content>
架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespace"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Content">
<xs:complexType>
<xs:sequence>
<xs:element name="Request">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:long" name="FromDateTime"/>
<xs:element type="xs:string" name="RemainderOffset"/>
<xs:element type="xs:int" name="MaxResults"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Response">
<xs:complexType>
<xs:sequence>
<xs:element name="Status">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="Code"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Remainder">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:int" name="Count"/>
<xs:element type="xs:int" name="Offset"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Items">
<xs:complexType>
<xs:sequence>
<xs:element name="Item" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Title"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="PubDate"/>
<xs:element type="xs:anyURI" name="Uri"/>
<xs:element type="xs:string" name="Resource"/>
<xs:element name="Keywords">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element type="xs:string" name="Keyword" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:int" name="id" use="required"/>
<xs:attribute type="xs:int" name="itemHash" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
当然还有我用来读取文件的代码。这是我首先下载的文件,它作为 Object o
进入方法。我认为错误就在这里某处,因为 XML 使用在线工具验证此模式...为了便于阅读,我删除了 try-catch block 。
main method {
File file = (File) o;
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder b = f.newDocumentBuilder();
Document doc = b.parse(file.getAbsolutePath());
doc.getDocumentElement().normalize();
// Add the correct namespace to the xml so there won't be any false positive errors
// Got this part from SO
Element originalDocumentElement = doc.getDocumentElement();
Element newDocumentElement = doc.createElementNS(NAMESPACE, originalDocumentElement.getNodeName());
newDocumentElement.setPrefix("ns");
NodeList list = originalDocumentElement.getChildNodes();
while(list.getLength()!=0) {
newDocumentElement.appendChild(list.item(0));
}
// Replace the original element
doc.replaceChild(newDocumentElement, originalDocumentElement);
xmlOptions = createXmlOptions();
xmlDoc = XmlObject.Factory.parse(doc, xmlOptions);
validate();
}
public XmlOptions createXmlOptions()
{
Map<String, String> substituteNamespaces = new HashMap<String, String>();
substituteNamespaces.put("", "http://namespace");
XmlOptions xmlOptions = new XmlOptions();
xmlOptions.setLoadSubstituteNamespaces(substituteNamespaces);
xmlOptions.setCharacterEncoding(FILE_ENCODING);
xmlOptions.setErrorListener(errors);
xmlOptions.setValidateTreatLaxAsSkip();
return xmlOptions;
}
public boolean validate() throws ParserException {
return xmlDoc.validate(xmlOptions);
}
错误信息:error: cvc-elt.1: Invalid type
打印 error.getCursorLocation().xmlText()
返回整个 XML 文件。
最佳答案
架构用于命名空间
targetNamespace="http://red.persgroep.be/technology/1.0"
它对命名空间中的文档无话可说
xmlns:ns="http://namespace"
您只能根据适用于元素命名空间的模式验证元素。
关于java - "error: cvc-elt.1: Invalid type"在 Java 中验证 xml 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655073/
var $this = $(this); 鉴于上述情况,哪个更快:$(".elt", $this) 或 $this.find(".elt")? 我问是因为第一个看起来更简洁,但如果它转换为 $($th
这就是我所拥有的,但只有当 elt 出现在列表的开头时它才有效 (define (delete-all xx elt) (cond ((null? xx) null) ((equa
整个查询: SELECT NULL, ELT( MOD( A.contact_id, (SELECT count(*) FROM `ak_contact` WHERE `contact_type_
我正在阅读nginx源代码,我发现elts在很多数据结构声明中,例如: struct ngx_array_s { void *elts; ngx_uint_t nelts; /* some membe
我知道在ETL中,我们将数据转换并加载到数据仓库中。 在ELT中,我们将数据加载到数据仓库中,然后进行转换。 除了以上两行,它们究竟有何不同? 一个比另一个有什么优势? 在 ELT 中,我看到有人告诉
我在Firefox 扩展的环境中工作。 问题 我正在尝试创建一个具有特定 lang 属性的新元素。我尝试了 How to create HTML element with lang attribute
在 MySQL 中,您可以使用 ELT() 函数从列表中的指定位置返回一个项目。 如何在 Postgresql 中找到相同的 --- 在MySQL中 SELECT ELT(3, 'Cat', 'Dog
http://jsfiddle.net/ca11111/WEuzB/ 我试着让评论和作者出现在同一行,作者+删除按钮右浮动 但是 jquery-mobile 很复杂,任何帮助或建议都将不胜感激 谢谢
我使用 2 种方法来构建基于 cons 单元格的树。 (defun make-tree (nodes) (cons nodes NIL)) (defun add-child (tree child
我了解“ELT”功能的作用,但它代表什么? official documentation 中没有说明我似乎也无法在其他任何地方找到它。 最佳答案 它代表“鹰、生菜和番茄”,这是有史以来最不成功的三明治
有谁知道为什么 NHibernate 会为多对多映射生成一个名为“elt”的 int 类型字段? 我想知道为什么我需要它。 谢谢 最佳答案 “elt”字段是多对多映射中元素的外键。在连接表中,您应该看
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
我在 mysql 中定义了以下函数,并试图将其转换为 MSSQL。 MSSQL (2012) 的等价物是什么? DELIMETER $$ CREATE FUNCTION get_random_stat
这是使用链表实现 Stack 的完整代码。它来自 James Aspnes 为耶鲁大学编写的数据结构笔记(有什么好处吗?) #include #include #include struct e
我有这个 javascript 代码: var elt = document.createElement("div"); elt.class = "class_1"; 在我的 CSS 中应该有一个与
我试图了解 ELT函数适用于不同的序列类型。 很明显,当一个列表被传递给它时,性能是顺序 O(n) . 说从 VECTORP 中获取元素是真的吗?顺序是O(1) ? 一个字符串呢? 这似乎没有在 Hy
我有以下 XML。 1A 1B ValD
我无法摆脱这个错误: cvc-elt.1: Cannot find the declaration of element 'beans'. 我正在Tomcat 9上运行我的Web项目。我已经尝试了st
对于我的 XML 在线类(class),我被分配完成本教程。 Jenna 一直致力于创建一个 DVD 库,她可以在其中列出她拥有的所有 DVD。有些是她自己买的,有些是妈妈、爸爸、姐姐、爷爷和奶奶送给
我在验证 XML 模式时遇到问题。我的架构代码:
我是一名优秀的程序员,十分优秀!