java项目xml使用自定义dtd位置问题
项目中自定义了xml文件,因为要约束一下xml的编写规范,因此使用了dtd文件。但是在实际的使用过程中发现dtd文件的路径非常诡异。到目前位置还没有找到原因,如果有人知道,请指教。下边记录一下解决方法。
先贴上我的xml和dtd
xml内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tablepage SYSTEM "./tablepage.dtd">
<tablepage file-name="测试文件名.pdf">
<!-- <title align="center" v-align="middle" font-family="STSong-Light"> -->
<!-- <text>测试标题</text> -->
<!-- </title> -->
<tables>
<table cols="12" font-family="STSong-Light" entity="cpafInfo" rotate="false">
<title align="center" v-align="middle" font-family="STSong-Light">
<text>事务所基本信息</text>
</title>
<trs>
<tr>
<tds>
<td colspan="12" align="center" v-align="middle" border-width="1 1 1 1">
<text>基本情况</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle" border-width="2 2">
<text>名称</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{cpafName}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle" border-width="3">
<text>所属行政区划</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{divisionProvince}}</text>
</td>
<td colspan="2" align="left" v-align="middle" border-width="0 0">
<text>组织形式</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{orgForm}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>执业许可批准日期</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{approDate}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>统一社会信用代码</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{regisCno}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>执业许可批准文号</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{rna}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>执业证书编号</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{cpafCno}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" rowspan="2" align="left" v-align="middle">
<text>注册资本(出资总额)(单位:万元)</text>
</td>
<td colspan="4" rowspan="2" align="left" v-align="middle">
<text>{{totalInves}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>分所数量</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{cpafbNum}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>国际网络名称(如有)</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{internetName}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>经营场所</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{officeLocation}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>通讯地址</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{address}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>报备业务联系人</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{reporter}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>电子邮箱</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{email}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>报备业务联系电话</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{phone}}</text>
</td>
</tds>
</tr>
</trs>
</table>
<table cols="12" font-family="STSong-Light" entity="cpafInfo" rotate="true">
<title align="center" v-align="middle" font-family="STSong-Light">
<text>测试横向页面</text>
</title>
<trs>
<tr>
<tds>
<td colspan="12" align="center" v-align="middle">
<text>基本情况</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>名称</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{cpafName}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>所属行政区划</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{divisionProvince}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>组织形式</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{orgForm}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>执业许可批准日期</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{approDate}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>统一社会信用代码</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{regisCno}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>执业许可批准文号</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{rna}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>执业证书编号</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{cpafCno}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" rowspan="2" align="left" v-align="middle">
<text>注册资本(出资总额)(单位:万元)</text>
</td>
<td colspan="4" rowspan="2" align="left" v-align="middle">
<text>{{totalInves}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>分所数量</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{cpafbNum}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>国际网络名称(如有)</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{internetName}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>经营场所</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{officeLocation}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>通讯地址</text>
</td>
<td colspan="10" align="left" v-align="middle">
<text>{{address}}</text>
</td>
</tds>
</tr>
<tr foreach="true" entities="">
<tds>
<td colspan="2" align="left" v-align="middle">
<text>报备业务联系人</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{reporter}}</text>
</td>
<td colspan="2" align="left" v-align="middle">
<text>电子邮箱</text>
</td>
<td colspan="4" align="left" v-align="middle">
<text>{{email}}</text>
</td>
</tds>
</tr>
<tr>
<tds>
<td colspan="2" align="left" v-align="middle">
<text>报备业务联系电话</text>
</td>
<td colspan="10" align="left" v-align="middle" border-width='0 0.5 0 0'>
<text>{{phone}}</text>
</td>
</tds>
</tr>
</trs>
</table>
</tables>
</tablepage>
tablepage.dtd
<!ELEMENT tablepage (title,tables)>
<!ELEMENT tables (table)>
<!ELEMENT table (trs)>
<!ELEMENT trs (tr)>
<!ELEMENT tr (tds)>
<!ELEMENT tds (td)>
<!ELEMENT td (text)>
<!ATTLIST tablepage file-name CDATA "">
<!ATTLIST title align CDATA "center"
v-align CDATA "middle"
font-family CDATA #IMPLIED>
<!ATTLIST table entity CDATA #REQUIRED
rows CDATA #IMPLIED
font CDATA "微软雅黑"
rotate CDATA "false">
<!ATTLIST tr foreach CDATA "false"
entities CDATA "">
<!ATTLIST td align CDATA "center"
v-align CDATA "middle"
rowspan CDATA #IMPLIED
colspan CDATA "微软雅黑">
主要问题出在xml的
<!DOCTYPE tablepage SYSTEM "./tablepage.dtd">
这一行.
- eclipse开发的话,在web项目中需要在和xml文件同级添加tablepage.dtd,还需要在eclipse的安装目录下添加tablepage.dtd(太奇怪了);
- weblogic部署时,要在和xml文件同级以及weblogic的域下添加tablepage.dtd
- 在java project中,要在和xml文件同级和项目根目录下添加dtd
如上,暂时总结如上,后续有新的内容再来