【发布时间】:2017-12-05 19:13:47
【问题描述】:
我仍在寻找一些数据库导出问题的解决方案,如下所示:
<DATA>
<ROW>
<ID>36342</ID>
<TIMESTAMP1>2017-11-24 14:54:51</TIMESTAMP1>
<TIMESTAMP2>2017-11-24 14:54:51</TIMESTAMP2>
<NOTES>please try <variable_name> inside <function></NOTES>
</ROW>
<ROW>
<ID>36341</ID>
<TIMESTAMP1>2017-11-24 12:51:50</TIMESTAMP1>
<TIMESTAMP2>2017-11-24 12:51:50</TIMESTAMP2>
<NOTES>Otherwise <option> could also be</NOTES>
</ROW>
</DATA>
实际使用的数据实际上是一个支持数据库,这意味着在数十万个条目(NOTES2)中有多个占位符,所以我当然不能更改任何内容。注释还可以包含任意数量的占位符,包括无。
现在的问题是,如何能够将“NOTES”的任何内容理解为纯文本,而忽略所有类似的 XML,如 <function>、<variable_name> 和 <option>。 (当然还有很多其他人)
我已经得到了什么:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="DATA" sql:is-constant="1" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ROW" sql:relation="document" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" type="xsd:string" />
<xsd:element name="TIMESTAMP1" type="xsd:string" />
<xsd:element name="TIMESTAMP2" type="xsd:string" />
<xsd:element name="NOTES" type="string" >
<xsd:complexType>
<xsd:sequence>
<xsd:any processContents="skip" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
我必须补充一点,我实际上并不是 XML/XSD 方面的专家。我只能理解我读到的内容。我所读的是,在“注释”中找到的任何标签都应该在解释时跳过。但不幸的是,解析器说:
'type' cannot be present with either 'simpleType' or 'complexType'
当然,错误消息告诉我删除元素“NOTES”的实体“类型”,但如果我这样做,错误是:
Text is not allowed in the context of element 'NOTES' according to DTD/Schema.
那么我现在如何获得这样一个元素的全部内容呢?
最好的问候 马吕斯
【问题讨论】: