Работа с XML, схемами, DOM, PHP и др. - PullRequest
4 голосов
/ 22 декабря 2010

Я, кажется, читаю по кругу, или, возможно, я просто не понимаю некоторые из понятий здесь. Я переделываю набор шаблонных классов PHP, которые ранее использовали некоторые причудливые регулярные выражения для объединения и дублирования документов и областей документов, создавая страницу вывода. Пример моего предыдущего метода (для полноты картины):

<div id="myId">
    <!-- {{ region:myRegion }} -->
        <div class="myClass">
            <h1>{{ var:myHeading }}</h1>
            <h2>{{ var:myDatetime format:datetime(Y-m-d H:i:s) }}</h2>
            <p>{{ var:myText format:maxLength(300) }}</p>
        </div>
    <!-- {{ region:myRegion }} -->
</div>

В любом случае, это работает довольно хорошо, но я действительно хочу переместить его на следующий уровень, и подумал, что это будет логически расширять саму разметку, превращаясь в что-то вроде:

<div id="myId">
    <zuq:region name="myRegion">
        <div class="myClass">
            <h1><zuq:var name="myHeading" /></h1>
            <h2><zuq:var name="myDatetime" format="datetime" param="Y-m-d H:i:s" /></h2>
            <p><zuq:var name="myText" format="maxLength" param="300" /></p>
        </div>
    </zuq:region>
</div>

Я читал спецификации W3 и даже учебники W3Schools по различным соответствующим технологиям, таким как схема XML для написания спецификаций шаблонов. Очевидно, что я хочу, чтобы все было правильно и корректно во всех используемых пространствах имен. В первую очередь это будет использоваться вместе с разметкой XHTML.

В любом случае, кто-нибудь может подсказать мне хорошее прочтение по пониманию пространств имен XML , ограничений и лучших приемов смешивания пространств имен и, что наиболее важно, я полагаю, работая с PHP / DOM / XML . Есть ли какие-то критические недостатки в моем подходе, которые кто-нибудь может увидеть? Похоже, что в PHP нет особенно мощной реализации для работы с документами разметки с пространством имен, будь то через DOMDocument (и братья) или SimpleXML .

Любые советы, материалы для чтения или критика приветствуются!


Редактировать: Если кому-то интересно, элементы из пространства имен zuq не должны присутствовать во время вывода рендеринга, поскольку они были проанализированы и удалены другим способом. Тем не менее, помимо хорошей практики поддержания правильности документов, я намерен воспользоваться разметкой, присутствующей в шаблонах, чтобы администратор CMS WYSIWYG мог быстро редактировать страницы.

1 Ответ

2 голосов
/ 31 декабря 2010

Пространства имен - это действительно очень простая концепция, которая как-то раздувается. См. http://www.xml.com/pub/a/1999/01/namespaces.html для хорошего учебника по пространствам имен XML.

Что касается работы с пространством имен XML из PHP, интерфейс DOM работает очень хорошо. Например, вы можете getElementsByTagNameNS , вы можете lookupNamespaceURI , искать префикс данного URI ...

Кроме того, вопрос кажется невероятно субъективным и расплывчатым, поэтому, если вы хотите отредактировать его или опубликовать дополнительные вопросы, которые его уточняют, возможно, вы сможете получить более конкретную помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...