我正在编写一个DTD解析器,我有点不确定如何扩展参数实体。例如,这个DTD摘录是否有效?'>%gh;更具体地说,我很想知道实体gh是否会正确扩展。在我看来%ef;应该首先扩展到“c”,然后是新形成的PE引用%abcd;应该扩展到%xx;等等。我见过的大多数解析器都将%ab识别为PE引用并失败,因为该PE未定义。但是我在要求解析器以这种方式工作的标准中绝对没有发现任何引用。我找到的唯一引用是IncludedinLiteral而不是IncludedasPE其中声明替换文本必须用一个前导和一个后跟0x20来放大-但不是文字。有什么指点吗?谢谢。 最佳答案
请帮助我理解这件事:这里:http://www.w3schools.com/xml/xml_cdata.asp我们可以读到CDATA表示未解析的数据,那么为什么我不允许在此处放置“>”或“&”符号,因为它不是已解析的数据?我是说情况:在xml中:aaa">parseddata 最佳答案 你需要区分CDATAsections在XML文档中(这是链接的w3schools文章的内容)和CDATAtype在DTD的属性声明中。这是两个不同的概念。>属性值中允许使用字符。和&但是,除非逃脱,否则是不允许的。参见http://www.w3.or
简而言之,是否可以使用DTD将元素定义为包含CDATA?我正在调用第三方API,该API在元素内生成一些无效字符。具体来说,数据包含一些HTML实体,如’。当我尝试使用SimpleXML解析此XML时,我当然会收到解析器错误“实体‘rsquo’未定义”。这是我正在处理的一个简单的示例结构:JimSmithJim’sdescriptionbreaksmyparser因为我无法控制修复API响应...我已经使用这个肮脏的技巧在我尝试解析它之前将CDATA部分注入(inject)问题元素:$xml=str_replace("","","]]>",$xml);这解决了我的问题,但开
我正在尝试验证此XML文档:AliceBob针对以下DTD:运行xmllint--dtdvalidtest.dtdtest.xml产生:test.xml:3:elementCONTACT:validityerror:SyntaxofvalueforattributeCONTACT_NUMofCONTACTisnotvalidtest.xml:7:elementCONTACT:validityerror:SyntaxofvalueforattributeCONTACT_NUMofCONTACTisnotvalidDocumenttest.xmldoesnotvalidateagainst
文档基本上以“catalog”作为根标签,“movie”的子标签后跟一个或多个“actor”。这些子标签中的每一个进一步包含更多子标签。我应该根据给定的一些规则为此制作一个DTD,但它只是拒绝我在文档开头放置的任何内容。有帮助吗?这是XML代码:Monster'sBall2001111minutesHalleBerryAugust14,1966Cleveland,OhioBillyBobThorntonX-Men2000104minutesIanMcKellenLordoftheRings:TheFellowshipoftheRing2001178minutesLordoft
以下有什么区别:parser.setFeature("http://xml.org/sax/features/validation",true);andparser.setFeature("http://apache.org/xml/features/validation/schema",true);andparser.setValidating(true);我在google上找到了两次确切的问题,但没有找到答案我正在使用org.apache.commons.digester,我在消化器上调用setFeature或setValidating。 最佳答案
XML文档指定它同时遵循DTD和架构是否合法?两者不会冲突吗? 最佳答案 从技术上讲,我认为DTD无法识别引用架构的属性(命名空间声明和架构位置)时会遇到问题。但是我认为这取决于您验证XML的方式,以及如果指定了架构,您是否可以忽略DTD进行验证。此外,对于您的作业,您确定必须从同一个XML实例中引用两者吗?也许您可以拥有2个版本的XML;一种引用DTD,一种引用模式?这是另外两个可能的选择...声明架构属性:]>TestDoc使用处理指令引用模式:]>TestDoc 关于xml-XML
这是xsd文件这是xml文件,我遇到了这种问题。Nogrammarconstraints(DTDorXMLschema)detectedforthedocument.在xml文档中。如果我更改了xml文件的根节点,如下所示然后我遇到了这种错误cvc-elt.1:Cannotfindthedeclarationofelement'edge'.我对这个概念感到困惑。请帮忙。 最佳答案 您显示的模式文档声明了一个名为edge的元素。在命名空间http://www.example.org/onetext(targetNamespace元素上
我的address.dtd文件如下。当我尝试使用SAXParserFactory解析我的address.xml文件时,出现异常,"org.xml.sax.SAXParseException;systemId:file:/home/samitha/svnrepo/XML/XMLParserTest/src/address.dtd;lineNumber:9;columnNumber:22;应该为属性"{1}”与元素类型“省”相关联。address.xml文件如下所示。Mr.SamithaChathuranga107BSam'sHomePorambaAG80300SriLanka
XML是SGML的一个子集。有效的XML文档也是有效的SGML文档,但反之则不然。即使我使用XML模式而不是DTD,这是否仍然成立?怀疑源于XMLDTD是SGMLDTD的子集,但XMLSchema允许无法在XMLDTD中定义的内容。那么XMLSchema仍然是一个子集吗?我能用SGMLDTD做所有我用XMLSchema能做的事吗? 最佳答案 IsXMLSchemaasubsetofSGMLDTD?不,XMLSchema远不是DTD的子集。XMLSchema使用与DTD完全不同的语法,XMLSchema可以表达许多DTD中不可能表达的