camka
не самка
потоковый xml парсинг + dtd валидация
xml.xml
	
	
	
		
xmldtd.php
	
	
	
		
php код находит только ошибки, связаные с well-formed xml. то есть, если где-то не закрыт тэг и т.д. а мне надо отлавливать ошибки расхождения с правилами, указаными в dtd.
js код, который делает то что нужно
	
	
	
		
думаю, что и пэхэпэшный дом объект тоже так может. но как же быть с поточным парсингом? никаких опций в xml_parser_set_option() не обнаружилось. в списке констант тоже не видать ничего подходящего. ни уж то никак?
---------
прошу перенести в соответствующий форум, а то я промахнулся.
								xml.xml
		Код:
	
	<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note    (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
<to>Tove</to>
<fromm>Jani</fromm>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<ps>I love you</ps>
</note>
		PHP:
	
	<?php
$xml_parser = xml_parser_create();
$fp = fopen('xml.xml', "r");
while ($data = fread($fp, 2)) 
{
   if (!xml_parse($xml_parser, $data, feof($fp))) 
   {
       echo xml_error_string(xml_get_error_code($xml_parser)),xml_get_current_line_number($xml_parser);
   }
}
xml_parser_free($xml_parser);
?>js код, который делает то что нужно
		Код:
	
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.validateOnParse="false"
xmlDoc.load("note_dtd_error.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)---------
прошу перенести в соответствующий форум, а то я промахнулся.
 
	            