我有一个XML文件,它被批量加载到数据库中.现在在xml的顶部有一个doctype newfile.
<!DOCTYPE NEWFILE SYSTEM "XXX_OUT_1234_YYMMDD_00.dtd">
Run Code Online (Sandbox Code Playgroud)
我想知道的是它的用途以及是否需要它.使用模式和文件名将数据加载到带有C#批量上传器的SQL中(我在下面列出了基础知识,还有很多步骤,但我认为它并不相关.)
SQLXMLBulkLoad3Class objBL = new SQLXMLBulkLoad3Class();
objBL.Execute (schema,filename);
Run Code Online (Sandbox Code Playgroud)
模式文件的名称类似于XXX_OUT_1234_090700_06.xsd,类似于Doctype.
现在的原因是doctype将被删除,我不确定它是否真的有用.我环顾四周,但大多数doctypes用于网站(这是一个旧的Windows窗体应用程序.)我找到的大多数信息如下所示,我想知道doctype在这种情况下做了什么.
如果XML片段包含具有可在验证时解析的SYSTEM标识符的DOCTYPE声明,则可以直接验证DTD.只需使用单个参数构造函数之一创建Validator对象.
好问题.大多数人只是忽略了DOCTYPE语句的实际内容:)
文档类型声明的(基本)语法是
<!DOCTYPE root-element PUBLIC "publicID" SYSTEM "systemID">
Run Code Online (Sandbox Code Playgroud)
公共标识符是可选的,因此您也可以说:
<!DOCTYPE root-element SYSTEM "systemID">
Run Code Online (Sandbox Code Playgroud)
在这两个中,后面的标记DOCTYPE
是包含此声明的XML或SGML文档的根元素的名称.所以...
<!DOCTYPE NEWFILE SYSTEM "XXX_OUT_1234_YYMMDD_00.dtd">
<NEWFILE>
...
</NEWFILE>
Run Code Online (Sandbox Code Playgroud)
PUBLIC和SYSTEM标识符都引用此实例文档的DTD.SYSTEM标识符可用于查找包含DTD的物理文件.PUBLIC标识符通常与目录一起使用,以便为DTD提供本地缓存的查找.除此之外还有更多内容,但这是基础知识.在您的情况下,只有一个SYSTEM标识符.如果你使用的验证解析器(我怀疑你不是)正在根据DTD验证你的文档(文档类型定义)这次)它会使用这些信息来搜索DTD本身.如果您没有目录(几乎肯定没有),应用程序将在与实例文件本身相同的位置搜索"XXX_OUT_1234_YYMMDD_00.dtd".如果您没有收到验证错误,则不会查找它,您可以安全地删除声明
如果你有这个内容的模式,那么DOCTYPE是相当多余的(当一个人使用实体时有一些用途,但你可能没有).您几乎肯定可以安全地删除它,因为如果您在该过程中验证DTD,我会非常惊讶.
归档时间: |
|
查看次数: |
299 次 |
最近记录: |