Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > xml закрытие тега


Автор: ziga 4.10.2012, 10:27
делаю запрос:

Код

select 
xmlelement("rs:data",
                 xmlagg (
                   xmlelement("z:row",
                     xmlattributes(a.nm_flat as "cdFlat"))))
from ssp_abonent a where rownum < 10


ответ 

Код

<rs:data><z:row cdFlat="25"></z:row><z:row cdFlat="26"></z:row><z:row cdFlat="27"></z:row>
<z:row cdFlat="28"></z:row><z:row cdFlat="29"></z:row><z:row cdFlat="30"></z:row><z:row cdFlat="31"></z:row>
<z:row cdFlat="32"></z:row><z:row cdFlat="1"></z:row></rs:data>


как сделать так что бы закрытие z:row было не так </z:row> а вот так <z:row cdFlat="26" /> без </z:row>

Автор: LSD 4.10.2012, 11:01
Как сделать не знаю, но с точки зрения синтаксиса XML обе записи 
Код

<z:row cdFlat="26"></z:row>

и
Код

<z:row cdFlat="26"/>

полностью эквивалентны и нет никаких причин требовать чтобы был использован именно второй вариант.

Автор: ziga 4.10.2012, 12:09
используется схема XML 

Код

<s:Schema id='RowsetSchema'>
    <s:ElementType name='row' content='eltOnly' rs:updatable='true'>


подозреваю что из-за content='eltOnly' парсер ругается 

Автор: LSD 4.10.2012, 15:24
Цитата(ziga @  4.10.2012,  13:09 Найти цитируемый пост)
используется схема XML

Валидация сгенерированного документа по схеме не проходит? Тогда хотелось бы посмотреть схему целиком и целиком XML который не проходит валидацию.

Автор: Zloxa 4.10.2012, 20:20
Вроде так похоже работает, но такое поведение явным образом нигде не описано, со всеми вытекающими последствия - от релиза к релизу может и по всякому статься.
Код

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 

SQL> select
  2    xmlSerialize(
  3      document
  4          xmlelement("rs:data"
  5                     ,xmlAttributes('foo' as "xmlns:rs",'bar' as "xmlns:z")
  6                    ,xmlagg (
  7                      xmlelement("z:row",
  8                      xmlattributes(a.dummy as "cdFlat"))))
  9     as clob
 10     indent size = 2)
 11  from dual a
 12  /
 
XMLSERIALIZE(DOCUMENTXMLELEMEN
--------------------------------------------------------------------------------
<rs:data xmlns:rs="foo" xmlns:z="bar">
  <z:row cdFlat="X"/>
</rs:data>
 


Цитата(ziga @  4.10.2012,  13:09 Найти цитируемый пост)
подозреваю что из-за content='eltOnly' парсер ругается  

У мну парсер ругался покуда я намеспас для псевдониму не прописал

Автор: ziga 5.10.2012, 09:40
Zloxa, спасибо помогло! 
можно пояснить пару строк xmlSerialize, document, indent size = 2

Автор: Zloxa 5.10.2012, 11:02
Все http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions252.htm#SQLRF06231

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)