创建TDE Marklogic时不支持列名中的点

创建TDE Marklogic时不支持列名中的点,marklogic,Marklogic,我们正在将csv数据导入marklogic。有些列的名称中有一个点(.)。它被很好地加载到MarkLogic中(与点一起) 但是,当我们创建TDE模板以创建视图时,不接受点。向我抛出以下错误: [1.0-ml] TDE-INVALIDTEMPLATE: (err:FOER0000) Invalid TDE template: TDE-INVALIDSQLNAMENODE: Invalid SQL object name: "DataType." for /tde:template/tde:row

我们正在将csv数据导入marklogic。有些列的名称中有一个点(.)。它被很好地加载到MarkLogic中(与点一起)

但是,当我们创建TDE模板以创建视图时,不接受点。向我抛出以下错误:

[1.0-ml] TDE-INVALIDTEMPLATE: (err:FOER0000) Invalid TDE template: TDE-INVALIDSQLNAMENODE: Invalid SQL object name: "DataType." for /tde:template/tde:rows/tde:row/tde:columns/tde:column[3]/tde:name

我可以用下划线替换点,但我正在寻找其他建议。

在tde.xsd中,名称的定义如下:

<xs:simpleType name="name">
    <xs:annotation>
        <xs:documentation>
            A generic name type.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NCName">
        <xs:minLength value="1"/>
        <xs:pattern value="[^.\-\p{Z}]+"/>
    </xs:restriction>
</xs:simpleType>

泛型名称类型。
也就是说,列名中不允许有点。 您可以在MarkLogic安装目录中的
Config/tde.xsd
中找到xsd


我建议您在列名中用下划线或大小写替换点。

谢谢。这很有帮助。我想知道当它作为一个xml元素被很好地允许时,为什么会受到这样的限制。我应该把它作为一个bug来提吗?我认为它们应该支持dots,因为在sql中也可以使用dots。因此,是的,提出一个bug/feature请求。