dimgel
Новичок
XHTML+XML (and XML+XHTML) + XSD(DTD) validation = ??? ((
Всем привет. Посоветовали ваш форум, помогите плиз кто сталкивался.
Мне нужно редактировать XHTML+XML (XHTML со вставками элементов из других пространств имен, и XML со вставками XHTML) с валидацией при сохранении. Потом отдавать это на вход XSLT, и на выходе получать валидный XHTML.
В данный момент пользуюсь XMLSpy 2004. Вставлять куски XHTML (xmlns="http://www.w3.org/1999/xhtml") внутрь своего XML несложно:
XSD:
Импортированы схемы слитые с http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd и http://www.w3.org/2001/xml.xsd (вторая импортируется в первую).
Но при этом валидация XHTML не производится , т.е. следующий код XMLSpy сохраняет без сообщения об ошибке:
XML:
А при создании попытке вставить элементы своего пространства имен в валидный XHTML, XMLSpy ругается: "Unexpected child element my:my-data":
XHTML:
Подскажите плиз, как обустроить себе редактор, чтобы проводил валидацию и XHTML, и XML при сохранении? Моей квалификации тут резко не хватает. ((
-~{}~ 01.04.06 21:59:
Сорри, в одном месте я дурканул - задал в XML noNamespaceSchemaLocation вместо schemaLocation. Вот так всё работает - и валидация, и auto-completion:
Но проблема с вставкой XML в XHTML остается. Боюсь, придется подкрутить xhtml1-schema.xsd... Как бы попроще, чтобы сразу разрешить у всех элементов дочки из других пространств имен? :-/
Всем привет. Посоветовали ваш форум, помогите плиз кто сталкивался.
Мне нужно редактировать XHTML+XML (XHTML со вставками элементов из других пространств имен, и XML со вставками XHTML) с валидацией при сохранении. Потом отдавать это на вход XSLT, и на выходе получать валидный XHTML.
В данный момент пользуюсь XMLSpy 2004. Вставлять куски XHTML (xmlns="http://www.w3.org/1999/xhtml") внутрь своего XML несложно:
XSD:
Импортированы схемы слитые с http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd и http://www.w3.org/2001/xml.xsd (вторая импортируется в первую).
Код:
<xs:schema xmlns="my" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/1999/xhtml"
schemaLocation="w3c/xhtml1-strict.xsd"/>
<xs:element name="root">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
[b]<xs:any namespace="http://www.w3.org/1999/xhtml"
processContents="strict"/>[/b]
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Но при этом валидация XHTML не производится , т.е. следующий код XMLSpy сохраняет без сообщения об ошибке:
XML:
Код:
<root xmlns="my" xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="my.xsd">
[b]<h:strong1>hi</h:strong1>[/b]
</root>
XHTML:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:my="my">
<head>
<title>Enter the title of your XHTML document here</title>
</head>
<body>
<p>Enter the body text of your XHTML document here</p>
[b]<my:my-data/>[/b]
</body>
</html>
Подскажите плиз, как обустроить себе редактор, чтобы проводил валидацию и XHTML, и XML при сохранении? Моей квалификации тут резко не хватает. ((
-~{}~ 01.04.06 21:59:
Сорри, в одном месте я дурканул - задал в XML noNamespaceSchemaLocation вместо schemaLocation. Вот так всё работает - и валидация, и auto-completion:
Код:
<root xmlns="my" xmlns:x="my" xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/xhtml my.xsd">
<strong xmlns="http://www.w3.org/1999/xhtml">hi
<em>shit</em>
</strong>
</root>