`

XML文件中的错误:must end with the ';' delimiter

阅读更多
XML文件中的错误:must end with the ';' delimiter.2008年01月16日 星期三 11:33xml 配置文件里头,一些符号不能直接使用.

因为传参数的时候用了&,结果报了这个错误.

错误的:

<forward name="savecustomer" path="/customerInfoAction.shtml?command=save&newsave=newsave"></forward>

修改后的:

<forward name="savecustomer" path="/customerInfoAction.shtml?command=save&amp;newsave=newsave"></forward>

实体

有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为&、@lt;、>、"和&apos;。

XML很大程度上扩展了实体的功能 - 允许在DTD中定义实体以便在文档的其余部分使用。例如,我在XML文档中需要频繁使用词组"Wired Digital",可以在DTD中这样表示:

<!ENTITY wd "Wired Digital">

这样当我使用这个词组时,可以敲入&wd;。于是可以避免拼错和重复敲入相同的信息。实体可以起到字处理器中宏的作用。

被替换的文本可以任意长,但是如果真是很长,可能要把信息存储在另一个文件中。可以通过外部实体参考来实现 - 在实体名和文件的URL中使用关键字SYSTEM:

<!ENTITY text SYSTEM "http://my.url.here">

这些特征功能强大,但有一个缺点:在一个DTD内不能被扩展。为了实现扩展功能,需要一个称为参数实体的特殊工具。它在实体定义中通过在实体名前插入"%"实现。一旦被定义,参数定义可以通过用百分号和分号包围参数名来实现。

为什么这么做?看看下面的代码:


<!ELEMENT vCard (%prop.man;, (%prop.id; | %prop.del; |

%prop.tel; | %prop.geo; | %prop.org; |

%prop.exp; | %prop.sec;)*)>


这段代码来自一个公用的XML名片草稿。当定义根元素时,作者发现更容易把信息分离到不同的参数实体中。如果看看其中的一个实体表现,我们就会知道为什么了。看看下面的prop.id实体:

<!ENTITY % prop.id "

(nickname | photo | bday)">


如果每个实体都用这么长的字符串表示,元素定义将很难阅读。

现在可以读一些DTD了。

分享到:
评论

相关推荐

    MySql中 delimiter 详解.docx

    在MySQL中,`delimiter`命令是用来设定SQL语句的结束符的,它的主要作用是告诉MySQL解释器何时一个完整的命令结束,从而可以开始执行。在默认情况下,MySQL使用分号(;)作为命令的终止符。这意味着当你在MySQL...

    1-存储过程练习.pptx

    存储过程是数据库中的一种重要工具,它是一组预先编写的SQL语句集合,可以被命名、存储并重复调用,以执行特定的任务。在数据库管理中,存储过程能够提高性能,减少网络流量,并提供更好的安全性和可维护性。在XSCJ...

    Delimiter_Matching 检查文件中定界符匹配

    在编程领域,特别是文本处理和解析任务中,检查文件中的定界符匹配是一个常见的需求。定界符,如圆括号“()”、方括号“[]”和花括号“{}”,通常用来定义代码块或者表示数据结构,如函数、数组和对象。正确匹配这些...

    MySQL存储过程:数据库编程的高级艺术

    存储过程中还可以包含错误处理逻辑,例如使用`DECLARE CONTINUE HANDLER`来捕获异常情况: ```sql DELIMITER // CREATE PROCEDURE ProcessOrder(IN orderID INT) BEGIN DECLARE exit handler for sqlexception ...

    详解 Mysql中的delimiter定义及作用

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程、触发器、函数等。 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其解。 其实就是告诉mysql解释器,该段命令...

    txt转xmlmatlab代码

    XML文件通常包含了图像中的物体边界框坐标、类别等信息。本话题涉及的是如何将原始的TXT格式标注转换为XML格式,以适应VOC2007数据集的要求。这通常需要编写特定的MATLAB代码来完成。 首先,理解TXT和XML文件的结构...

    MySql delimiter的作用是什么

    MySQL中的`delimiter`是一个非常重要的命令,用于定义SQL语句的结束标志。它的主要作用是告诉MySQL解析器何时一个完整的命令或语句结束,从而可以被执行。默认情况下,MySQL使用分号(;)作为语句的结束符。当你在...

    MySQL 存储过程

    - **过程体**:存储过程中具体的SQL语句和其他控制流程语句。 #### 三、声明分割符 在编写存储过程时,默认情况下MySQL的命令终止符为“;”。如果存储过程中的SQL语句也包含“;”,则会导致编译错误。因此,需要...

    eclipse插件开发-添加xmlcatalog到plugin Specified Entries

    1. 创建XMLCatalog配置文件:在你的项目中创建一个名为`catalog.xml`的文件,其中定义了URI到本地文件的映射。例如: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;catalog xmlns="urn:oasis:names:tc:entity...

    MySQL存储过程作业6.docx

    在MySQL中,我们首先需要创建一个数据库,本例中的数据库名为`test_pro`。接下来,在该数据库中创建两个表:`admin`和`beauty`。 1. **创建数据库**: ```sql CREATE DATABASE test_pro; USE test_pro; ``` 2....

    [MySQL] 存储过程错误异常处理例子

    本篇文章将详细探讨如何在MySQL的存储过程中使用`DECLARE EXIT HANDLER FOR SQLEXCEPTION`来实现错误异常处理。 首先,我们需要了解存储过程的基本结构。一个存储过程通常由`CREATE PROCEDURE`语句定义,包括参数...

    Matlab的数据文件读取.rar

    - **错误处理**:在读取过程中,应添加错误处理代码,确保文件存在且格式正确。 7. **数据预处理**:读取数据后,可能需要进行清洗、转换或规范化操作,例如去除缺失值、数据类型转换、标准化等。 学习这些基本...

    CAN错误计数规则

    1. **错误帧(Error Frame)**:由错误标志(Error Flag)和错误界定符(Error Delimiter)组成,用于指示数据帧或远程帧中的错误。 2. **过载帧(Overload Frame)**:由过载标志(Overload Flag)和过载界定符...

    CSV文件读取类C++源代码

    在C++编程中,CSV(Comma Separated Values)文件是一种常见的数据存储格式,用于存储表格数据,如数据库导出或简单的数据交换。CSV文件以其简单性和通用性而被广泛使用,可以被许多应用程序轻松读取,包括Excel、...

    MATLAB输出

    默认情况下,如果没有指定路径或文件类型,数据将被保存在当前工作目录下的.mat文件中。 ```matlab % 保存单个变量到.mat文件 save filename variable_name % 使用通配符保存类似命名的变量 save filename_prefix ...

    c++语言CSV文件分割解析

    使用c++开发的csv文件解析类。 namespace cpp { namespace str { /** 高性能的 csv 解析 */ class csv_parser { public: typedef std::pair, size_t &gt; string_t; typedef std::vector&lt;string_t &gt; fields_t; ...

    mysql5.0官方存储过程翻译

    MySQL存储过程是数据库管理系统中的一个重要组成部分,特别是在MySQL 5.0版本中,它提供了一种组织和执行复杂SQL语句的高效方式。本资料集合包含了对MySQL 5.0官方存储过程的详细翻译,旨在帮助学习者深入理解并熟练...

    java对csv文件进行读写操作

    如果是Maven项目,可以将依赖项添加到pom.xml文件中: ```xml &lt;groupId&gt;com.opencsv&lt;/groupId&gt; &lt;artifactId&gt;opencsv &lt;version&gt;5.4&lt;/version&gt; &lt;!-- 使用最新版本 --&gt; ``` 请注意,原`javacsv`库已不再维护...

    端口查看工具

    the tray icon option, one click on the tray icon with the left mouse button will open CurrPorts. (Without this option, double-click is required) * Version 1.75: o Added 'Exclude Selected ...

    使用Python文件读写,自定义分隔符(custom delimiter)

    在Python中进行文件读写时,通常我们使用内置的`open()`函数,它默认使用特定的换行符,如`\n`(Unix风格)、`\r`(Mac风格)或`\r\n`(Windows风格)。然而,有时候我们可能需要处理特殊格式的文件,其中的数据不是...

Global site tag (gtag.js) - Google Analytics