<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Форум 'XML/SOAP' на RSDN</title>
    <link>http://rsdn.org/Forum/xml/</link>
    <description></description>
    <category>xml</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN, 2001-2007</copyright>
    <webMaster>forum@rsdn.org</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://rsdn.org/rsdn.gif</url>
      <title>RSDN</title>
      <link>http://rsdn.org</link>
    </image>
    <lastBuildDate>Wed, 15 Apr 2026 23:10:03 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>XPath n//.. vs n//*/..</title>
		<link>http://rsdn.org/Forum/xml/8585619.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/8585619</guid>
		<comments>http://rsdn.org/Forum/xml/8585619</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8585619</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8585619</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8585619</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Итак есть xml&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;Root&amp;gt;
  &amp;lt;N1&amp;gt;
    &amp;lt;N2 /&amp;gt;
  &amp;lt;/N1&amp;gt;
&amp;lt;/Root&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если применить к нему XPath //N1//*/..  то результат &amp;mdash; узел N1, что выглядит логичным. Мы выбрали всех наследников N1 (это узел N2) и взяли его родителя (родитель N2 &amp;mdash; это N1)&lt;br /&gt;
А вот если сделать запрос //N1//..  то в результате у нас два узла. N1 и Root!!  Откуда Root? Вроде как запросы должны быть идентичны??&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Tue, 22 Aug 2023 10:01:04 GMT</pubDate>
		
			<author>Jack128 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>XSL 1.0</title>
		<link>http://rsdn.org/Forum/xml/8466149.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/8466149</guid>
		<comments>http://rsdn.org/Forum/xml/8466149</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8466149</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8466149</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8466149</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Немедленно нажми на RESET, All!&lt;br /&gt;
&lt;br /&gt;
  Я правильно понимаю, что в XSL 1.0 нет возможности, например, реализовать что-то вроде функции?&lt;br /&gt;
&lt;br /&gt;
  Если кратко; хочется в шаблон передать параметром шаблона другой шаблон, который этот шаблон&lt;br /&gt;
параметризирует вычисленными из текущего узла значениями и вызовет.&lt;br /&gt;
&lt;br /&gt;
  Например, во входном документе есть элементы, над которыми хочется провести вычисления и получить&lt;br /&gt;
ряд переменных, которые передать параметром в заданный шаблон. В один, другой, третий, пятый,&lt;br /&gt;
десятый. И вот это всё тоже должно быть,  стало быть, шаблоном. Но в XSL 1.0 невозможно шаблон&lt;br /&gt;
сделать параметром шаблона, т.к. параметр name в xsl:call-template не может быть переменной,&lt;br /&gt;
а должен быть непосредственным значением.&lt;br /&gt;
&lt;br /&gt;
  Есть известный способ выкрутиться, вместо call-template использовать apply-templates и&lt;br /&gt;
задать параметром select="document('')/*/template[@name='$param']".  Но получается, что содержимое&lt;br /&gt;
выбранного таким образом темплейта будет интерпретироваться как текст и узлы из xsl там не&lt;br /&gt;
будут обрабатываться. Да вообще любые узлы. По крайней мере так получается в xsltproc.&lt;br /&gt;
&lt;br /&gt;
  По-моему эта проблема имеет тесное отношение к другой: мол как применить шаблон к уже&lt;br /&gt;
сгенерированному результату преобразования. Например, через xsl:copy. Тоже никак. И здесь&lt;br /&gt;
такая-же история.&lt;br /&gt;
&lt;br /&gt;
  Я знаю, что в XSLT 2.0 и других процессорах есть миллион разных способов, но пользуясь чистым&lt;br /&gt;
XSLT 1.0 остаётся только разве что, в шаблоне-функции, из которой хочется вызвать другой шаблон,&lt;br /&gt;
в конце писать гигантский xsl:choose и там выбирать какую конкретно функцию вызвать, в зависимости&lt;br /&gt;
от входного параметра. Я правильно понимаю?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Wed, 08 Feb 2023 12:07:20 GMT</pubDate>
		
			<author>fk0 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Рекурсивный обход xml</title>
		<link>http://rsdn.org/Forum/xml/8463090.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/8463090</guid>
		<comments>http://rsdn.org/Forum/xml/8463090</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8463090</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8463090</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8463090</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть например вот такой xml:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;
&amp;lt;main&amp;gt;&lt;br /&gt;
    &amp;lt;fio n="attr"&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;name1&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;pasp&amp;gt;&lt;br /&gt;
            &amp;lt;pi&amp;gt;pi1&amp;lt;/pi&amp;gt;&lt;br /&gt;
            &amp;lt;pi&amp;gt;pi2&amp;lt;/pi&amp;gt;&lt;br /&gt;
        &amp;lt;/pasp&amp;gt;&lt;br /&gt;
    &amp;lt;/fio&amp;gt;&lt;br /&gt;
    &amp;lt;fio n="attr"&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;name2&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;/fio&amp;gt;&lt;br /&gt;
    &amp;lt;sub_node&amp;gt;&lt;br /&gt;
        &amp;lt;cr&amp;gt;&lt;br /&gt;
            &amp;lt;val&amp;gt;val1&amp;lt;/val&amp;gt;&lt;br /&gt;
            &amp;lt;val&amp;gt;val2&amp;lt;/val&amp;gt;&lt;br /&gt;
            &amp;lt;extra&amp;gt;&lt;br /&gt;
                &amp;lt;ex&amp;gt;ex1&amp;lt;/ex&amp;gt;&lt;br /&gt;
                &amp;lt;ex&amp;gt;ex2&amp;lt;/ex&amp;gt;&lt;br /&gt;
            &amp;lt;/extra&amp;gt;&lt;br /&gt;
        &amp;lt;/cr&amp;gt;&lt;br /&gt;
        &amp;lt;cr&amp;gt;&lt;br /&gt;
            &amp;lt;val&amp;gt;val3&amp;lt;/val&amp;gt;&lt;br /&gt;
            &amp;lt;val&amp;gt;val4&amp;lt;/val&amp;gt;&lt;br /&gt;
        &amp;lt;/cr&amp;gt;&lt;br /&gt;
    &amp;lt;/sub_node&amp;gt;&lt;br /&gt;
&amp;lt;/main&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
Мне нужно вывести определенные его элементы в плоскую таблицу по принципу "каждый с каждым". В mssql сервере я делаю это примерно так:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;declare&lt;/span&gt; @sCmd nvarchar(max), @sFullPath varchar(max), @x xml
&lt;span class='kw'&gt;set&lt;/span&gt; @sFullPath = 'c:\&lt;span class='kw'&gt;in&lt;/span&gt;\test2.xml'
&lt;span class='kw'&gt;set&lt;/span&gt; @sCmd = N'&lt;span class='kw'&gt;select&lt;/span&gt; @xml = cast(t.data &lt;span class='kw'&gt;as&lt;/span&gt; xml) &lt;span class='kw'&gt;from OPENROWSET&lt;/span&gt; (&lt;span class='kw'&gt;BULK&lt;/span&gt; '+quotename(@sFullPath, N'''') + N', SINGLE_BLOB) t(data)'
&lt;span class='kw'&gt;exec&lt;/span&gt; sp_executesql @sCmd, N'@xml xml output', @x output;
 
&lt;span class='kw'&gt;select distinct&lt;/span&gt;
    fio.n.value('name[1]', 'varchar(32)') 'fio.name'
    , pi_.n.value('.', 'varchar(32)') 'pi_'
 
    , val.n.value('.', 'varchar(5)') 'val'
    , ex.n.value('.', 'varchar(10)') 'ex'
 
&lt;span class='kw'&gt;from&lt;/span&gt; @x.nodes('main') &lt;span class='kw'&gt;as&lt;/span&gt; main(n)
    &lt;span class='kw'&gt;outer&lt;/span&gt; apply main.n.nodes('fio[@n="attr"]') &lt;span class='kw'&gt;as&lt;/span&gt; fio(n)
        &lt;span class='kw'&gt;outer&lt;/span&gt; apply fio.n.nodes('pasp/pi') &lt;span class='kw'&gt;as&lt;/span&gt; pi_(n)
    &lt;span class='kw'&gt;outer&lt;/span&gt; apply main.n.nodes('sub_node/cr') &lt;span class='kw'&gt;as&lt;/span&gt; cr(n)
        &lt;span class='kw'&gt;outer&lt;/span&gt; apply cr.n.nodes('val') &lt;span class='kw'&gt;as&lt;/span&gt; val(n)
        &lt;span class='kw'&gt;outer&lt;/span&gt; apply cr.n.nodes('extra/ex') &lt;span class='kw'&gt;as&lt;/span&gt; ex(n)&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Ну и получаемый результат:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;name1 pi1 val1 ex1&lt;br /&gt;
name1 pi1 val1 ex2&lt;br /&gt;
name1 pi1 val2 ex1&lt;br /&gt;
name1 pi1 val2 ex2&lt;br /&gt;
name1 pi1 val3 NULL&lt;br /&gt;
name1 pi1 val4 NULL&lt;br /&gt;
name1 pi2 val1 ex1&lt;br /&gt;
name1 pi2 val1 ex2&lt;br /&gt;
name1 pi2 val2 ex1&lt;br /&gt;
name1 pi2 val2 ex2&lt;br /&gt;
name1 pi2 val3 NULL&lt;br /&gt;
name1 pi2 val4 NULL&lt;br /&gt;
name2 NULL val1 ex1&lt;br /&gt;
name2 NULL val1 ex2&lt;br /&gt;
name2 NULL val2 ex1&lt;br /&gt;
name2 NULL val2 ex2&lt;br /&gt;
name2 NULL val3 NULL&lt;br /&gt;
name2 NULL val4 NULL&lt;/p&gt;&lt;/blockquote&gt;
А вот теперь вопрос, как это можно сделать в любом алгоритмическом языке? Например vba/c++/java и пр. в которых есть циклы, рекурсия, ну и SelectNodes(), SelectSingleNode()..&lt;br /&gt;
Я как понимаю нужно реализовать рекурсивный обход дерева xml, но что-то никак не соображу как... Подскажите пожалуйста...&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Fri, 03 Feb 2023 14:14:03 GMT</pubDate>
		
			<author>.alex &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>Xsl row height</title>
		<link>http://rsdn.org/Forum/xml/8063710.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/8063710</guid>
		<comments>http://rsdn.org/Forum/xml/8063710</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8063710</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8063710</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8063710</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет. Вопрос наверное ламерский. Есть таблица. В шапке надо сделать карточку  вертикальную до тела. Щас она только по высоте текста. Спасибо.&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Sat, 31 Jul 2021 16:52:57 GMT</pubDate>
		
			<author>Funny Rabbit &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Чем отредактировать файл выгрузки XML</title>
		<link>http://rsdn.org/Forum/xml/8014209.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/8014209</guid>
		<comments>http://rsdn.org/Forum/xml/8014209</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8014209</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8014209</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8014209</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Из некоторой программы формируется файл выгрузки в формате XML, предназначенный для загрузки в другую программу.&lt;br /&gt;
Надо в этом XML-файле для тестирования подменить один тип записей на другой.&lt;br /&gt;
Как это можно сделать? Какой программой?&lt;br /&gt;
&lt;br /&gt;
Пробовал программу STDU XML Editor.&lt;br /&gt;
Очень в ней неудобно это делать. По сути нереально.&lt;br /&gt;
Что еще можно попробовать?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Fri, 21 May 2021 17:51:26 GMT</pubDate>
		
			<author>zelenprog &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Автоматическая структура из xsd</title>
		<link>http://rsdn.org/Forum/xml/7777502.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7777502</guid>
		<comments>http://rsdn.org/Forum/xml/7777502</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7777502</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7777502</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7777502</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Добрый день. Можно ли сделать следующее ну или что-то подобное...&lt;br /&gt;
У меня есть куча групп .xml-файлов и для каждой группы есть соответствующий .xsd-файл.&lt;br /&gt;
Мне нужно импортировать все эти файлы в обычные плоские таблицы в MSSQL Server. Понятно если есть «ветвление» в .xml-файле то грузим избыточные строки &amp;mdash; каждый с каждым (декартово произведение).&lt;br /&gt;
Так вот собственно вопрос, если способ как-то динамически формировать из .xsd-файла структуру xml и в соответствующую плоскую таблицу и импортировать...&lt;br /&gt;
Сейчас делаю все руками, т.е. нахожу сначала все «ветвящиеся» ноды, потом рекурсивно обхожу их (декартово произведение) и ручками прописываю в коде название каждой ноды/атрибута...&lt;br /&gt;
Может есть более элегантный подход, а то описывать форматы всех видов/групп xml очень долго будет?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Tue, 14 Jul 2020 15:28:05 GMT</pubDate>
		
			<author>.alex &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>Сортировка групами</title>
		<link>http://rsdn.org/Forum/xml/7740329.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7740329</guid>
		<comments>http://rsdn.org/Forum/xml/7740329</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7740329</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7740329</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7740329</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Добрый день. В mssql server для разбора подобного .xml-файла:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;&lt;span class='kw'&gt;?xml version&lt;/span&gt;=&lt;span class='str'&gt;"1.0"&lt;/span&gt; &lt;span class='kw'&gt;encoding&lt;/span&gt;=&lt;span class='str'&gt;"UTF-8"&lt;/span&gt;?&amp;gt;
&amp;lt;main&amp;gt;
    &amp;lt;sender&amp;gt;
        &amp;lt;&lt;span class='kw'&gt;version&lt;/span&gt;&amp;gt;1.0&amp;lt;/&lt;span class='kw'&gt;version&lt;/span&gt;&amp;gt;
        &amp;lt;msg_date&amp;gt;26/12/2019&amp;lt;/msg_date&amp;gt;
        &amp;lt;position&amp;gt;director&amp;lt;/position&amp;gt;
        &amp;lt;fio&amp;gt;
            &amp;lt;surname&amp;gt;Pupkin&amp;lt;/surname&amp;gt;
            &amp;lt;&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;Ivan&amp;lt;/&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;
            &amp;lt;patronymic&amp;gt;Ivanivich&amp;lt;/patronymic&amp;gt;
        &amp;lt;/fio&amp;gt;
    &amp;lt;/sender&amp;gt;
    &amp;lt;info&amp;gt;
        &amp;lt;org&amp;gt;
            &amp;lt;org_id&amp;gt;1234&amp;lt;/org_id&amp;gt;
            &amp;lt;org_name&amp;gt;Organization&amp;lt;/org_name&amp;gt;
        &amp;lt;/org&amp;gt;
        &amp;lt;msg&amp;gt;
            &amp;lt;factor&amp;gt;777&amp;lt;/factor&amp;gt;
            &amp;lt;op&amp;gt;
                &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;
                &amp;lt;sum&amp;gt;12345.67&amp;lt;/sum&amp;gt;
                &amp;lt;doc&amp;gt;
                    &amp;lt;doc_num&amp;gt;1&amp;lt;/doc_num&amp;gt;
                    &amp;lt;doc_date&amp;gt;11/05/2019&amp;lt;/doc_date&amp;gt;
                &amp;lt;/doc&amp;gt;
                &amp;lt;doc&amp;gt;
                    &amp;lt;doc_num&amp;gt;2&amp;lt;/doc_num&amp;gt;
                    &amp;lt;doc_date&amp;gt;12/05/2019&amp;lt;/doc_date&amp;gt;
                &amp;lt;/doc&amp;gt;
                &amp;lt;doc&amp;gt;
                    &amp;lt;doc_num&amp;gt;3&amp;lt;/doc_num&amp;gt;
                    &amp;lt;doc_date&amp;gt;13/05/2019&amp;lt;/doc_date&amp;gt;
                &amp;lt;/doc&amp;gt;
                &amp;lt;member&amp;gt;
                    &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;
                    &amp;lt;fio&amp;gt;
                        &amp;lt;surname&amp;gt;Sidorov&amp;lt;/surname&amp;gt;
                        &amp;lt;&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;Andrey&amp;lt;/&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;
                        &amp;lt;patronymic&amp;gt;Ivanivich&amp;lt;/patronymic&amp;gt;
                    &amp;lt;/fio&amp;gt;
                &amp;lt;/member&amp;gt;
                &amp;lt;member&amp;gt;
                    &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;
                    &amp;lt;fio&amp;gt;
                        &amp;lt;surname&amp;gt;Petrov&amp;lt;/surname&amp;gt;
                        &amp;lt;&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;Pert&amp;lt;/&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;
                        &amp;lt;patronymic&amp;gt;Petrovich&amp;lt;/patronymic&amp;gt;
                    &amp;lt;/fio&amp;gt;
                &amp;lt;/member&amp;gt;
            &amp;lt;/op&amp;gt;
            &amp;lt;op&amp;gt;
                &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;
                &amp;lt;sum&amp;gt;1000&amp;lt;/sum&amp;gt;
                &amp;lt;doc&amp;gt;
                    &amp;lt;doc_num&amp;gt;1&amp;lt;/doc_num&amp;gt;
                    &amp;lt;doc_date&amp;gt;11/06/2019&amp;lt;/doc_date&amp;gt;
                &amp;lt;/doc&amp;gt;
                &amp;lt;doc&amp;gt;
                    &amp;lt;doc_num&amp;gt;2&amp;lt;/doc_num&amp;gt;
                    &amp;lt;doc_date&amp;gt;12/06/2019&amp;lt;/doc_date&amp;gt;
                &amp;lt;/doc&amp;gt;
                &amp;lt;doc&amp;gt;
                    &amp;lt;doc_num&amp;gt;3&amp;lt;/doc_num&amp;gt;
                    &amp;lt;doc_date&amp;gt;13/06/2019&amp;lt;/doc_date&amp;gt;
                &amp;lt;/doc&amp;gt;
                &amp;lt;member&amp;gt;
                    &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;
                    &amp;lt;fio&amp;gt;
                        &amp;lt;surname&amp;gt;Aaa&amp;lt;/surname&amp;gt;
                        &amp;lt;&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;Bbb&amp;lt;/&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;
                        &amp;lt;patronymic&amp;gt;Ccc&amp;lt;/patronymic&amp;gt;
                    &amp;lt;/fio&amp;gt;
                &amp;lt;/member&amp;gt;
                &amp;lt;member&amp;gt;
                    &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;
                    &amp;lt;fio&amp;gt;
                        &amp;lt;surname&amp;gt;Ddd&amp;lt;/surname&amp;gt;
                        &amp;lt;&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;Eee&amp;lt;/&lt;span class='kw'&gt;name&lt;/span&gt;&amp;gt;
                        &amp;lt;patronymic&amp;gt;Fff&amp;lt;/patronymic&amp;gt;
                    &amp;lt;/fio&amp;gt;
                &amp;lt;/member&amp;gt;
            &amp;lt;/op&amp;gt;
        &amp;lt;/msg&amp;gt;
    &amp;lt;/info&amp;gt;
&amp;lt;/main&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
пишу что-то типа такого:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;declare&lt;/span&gt; @sCmd nvarchar(max), @sFullPath varchar(max), @x xml

&lt;span class='kw'&gt;set&lt;/span&gt; @sFullPath = 'd:\test.xml'
&lt;span class='kw'&gt;set&lt;/span&gt; @sCmd = N'&lt;span class='kw'&gt;select&lt;/span&gt; @xml = cast(t.data &lt;span class='kw'&gt;as&lt;/span&gt; xml) &lt;span class='kw'&gt;from OPENROWSET&lt;/span&gt; (&lt;span class='kw'&gt;BULK&lt;/span&gt; '+quotename(@sFullPath, N'''') + N', SINGLE_BLOB) t(data)'
&lt;span class='kw'&gt;exec&lt;/span&gt; sp_executesql @sCmd, N'@xml xml output', @x output;

&lt;span class='kw'&gt;select distinct&lt;/span&gt;
    sender.n.value('version[1]', 'varchar(10)') 'sender.version'
    , sender.n.value('msg_date[1]', 'varchar(50)') 'sender.msg_date'
    , sender.n.value('position[1]', 'varchar(40)') 'sender.position'
    , sender.n.value('fio[1]/surname[1]', 'varchar(500)') 'sender.fio.surname'
    , sender.n.value('fio[1]/name[1]', 'varchar(500)') 'sender.fio.name'
    , sender.n.value('fio[1]/patronymic[1]', 'varchar(500)') 'sender.fio.patronymic'

    , info.n.value('org[1]/org_id[1]', 'varchar(100)') 'info.org.org_id'
    , info.n.value('org[1]/org_name[1]', 'varchar(100)') 'info.org.org_name'

    , info.n.value('msg[1]/factor[1]', 'varchar(10)') 'info.msg.factor'

    , info_msg_op.n.value('id[1]', 'varchar(32)') 'info.msg.op.id'
    , info_msg_op.n.value('sum[1]', 'varchar(32)') 'info.msg.op.sum'

    , info_msg_op_doc.n.value('doc_num[1]', 'varchar(32)') 'info.msg.op.doc.doc_num'
    , info_msg_op_doc.n.value('doc_date[1]', 'varchar(32)') 'info.msg.op.doc.doc_date'

    , info_msg_op_member.n.value('id[1]', 'varchar(32)') 'info.msg.op.member.id'
    , info_msg_op_member.n.value('fio[1]/surname[1]', 'varchar(32)') 'info.msg.op_member.fio.surname'
    , info_msg_op_member.n.value('fio[1]/name[1]', 'varchar(32)') 'info.msg.op.member.fio.name'
    , info_msg_op_member.n.value('fio[1]/patronymic[1]', 'varchar(32)') 'info.msg.op.member.fio.patronymic'
&lt;span class='kw'&gt;from&lt;/span&gt; @x.nodes('main') &lt;span class='kw'&gt;as&lt;/span&gt; main(n)
&lt;span class='kw'&gt;outer&lt;/span&gt; apply main.n.nodes('sender') &lt;span class='kw'&gt;as&lt;/span&gt; sender(n) 
&lt;span class='kw'&gt;outer&lt;/span&gt; apply main.n.nodes('info') &lt;span class='kw'&gt;as&lt;/span&gt; info(n)
    &lt;span class='kw'&gt;outer&lt;/span&gt; apply info.n.nodes('msg/op') &lt;span class='kw'&gt;as&lt;/span&gt; info_msg_op(n)
        &lt;span class='kw'&gt;outer&lt;/span&gt; apply info_msg_op.n.nodes('doc') &lt;span class='kw'&gt;as&lt;/span&gt; info_msg_op_doc(n)
        &lt;span class='kw'&gt;outer&lt;/span&gt; apply info_msg_op.n.nodes('member') &lt;span class='kw'&gt;as&lt;/span&gt; info_msg_op_member(n)&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
и получаю избыточную одномерную табличку (избыточная потому, что у меня в каждом op 3doc и 2member итого 6 строк для каждой op) но мне собственно так и нужно...&lt;br /&gt;
Подскажите можно ли на алгоритмическом языке например на с/tinyxml или например на powershell сделать так же? в смысле без кучи циклов и сохранений значений нод во временные переменные...)&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Wed, 27 May 2020 10:39:20 GMT</pubDate>
		
			<author>.alex &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>Подскажите можно сделать это через XPath</title>
		<link>http://rsdn.org/Forum/xml/7663403.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7663403</guid>
		<comments>http://rsdn.org/Forum/xml/7663403</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7663403</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7663403</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7663403</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Добрый день. Есть подобный xml:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="windows-1251"?&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;date&amp;gt;22.07.2019&amp;lt;/date&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;rec num="1"&amp;gt;
    &amp;lt;main_info&amp;gt;
        &amp;lt;aux&amp;gt;
            &amp;lt;inn&amp;gt;
                &amp;lt;inn_no&amp;gt;132465&amp;lt;/inn_no&amp;gt;
            &amp;lt;/inn&amp;gt;
        &amp;lt;/aux&amp;gt;
    &amp;lt;/main_info&amp;gt;

    &amp;lt;data1&amp;gt;
        &amp;lt;id&amp;gt;1111&amp;lt;/id&amp;gt;
    &amp;lt;/data1&amp;gt;
&amp;lt;/rec&amp;gt;

&amp;lt;rec num="2"&amp;gt;
    &amp;lt;main_info&amp;gt;
        &amp;lt;aux&amp;gt;
            &amp;lt;inn&amp;gt;
                &amp;lt;inn_no&amp;gt;2222222&amp;lt;/inn_no&amp;gt;
            &amp;lt;/inn&amp;gt;            
        &amp;lt;/aux&amp;gt;
    &amp;lt;/main_info&amp;gt;
    
    &amp;lt;data1&amp;gt;
        &amp;lt;id&amp;gt;987&amp;lt;/id&amp;gt;
    &amp;lt;/data1&amp;gt;
&amp;lt;/rec&amp;gt;

&amp;lt;rec num="3"&amp;gt;
    &amp;lt;main_info&amp;gt;
        &amp;lt;aux&amp;gt;
            &amp;lt;inn&amp;gt;
                &amp;lt;inn_no&amp;gt;132465&amp;lt;/inn_no&amp;gt;
            &amp;lt;/inn&amp;gt;
        &amp;lt;/aux&amp;gt;
    &amp;lt;/main_info&amp;gt;

    &amp;lt;data1&amp;gt;
        &amp;lt;id&amp;gt;8888&amp;lt;/id&amp;gt;
    &amp;lt;/data1&amp;gt;

    
    &amp;lt;data2&amp;gt;
        &amp;lt;tag2&amp;gt;
            &amp;lt;id&amp;gt;777&amp;lt;/id&amp;gt;
        &amp;lt;/tag2&amp;gt;
    &amp;lt;/data1&amp;gt;
&amp;lt;/rec&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Можно ли через XPath из него вытащить следующее:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;132465    1111    (пусто)
2222222    987    (пусто)
132465 8888    777&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Wed, 19 Feb 2020 17:03:53 GMT</pubDate>
		
			<author>.alex &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>XML подпись, какое значение имеют трансформации?</title>
		<link>http://rsdn.org/Forum/xml/7450337.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7450337</guid>
		<comments>http://rsdn.org/Forum/xml/7450337</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7450337</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7450337</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7450337</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Мне нужно подписать SOAP-сообщение по стандарту WSSE который судя по всему по сути то же, что и XML Signature с другими названиями тегов.&lt;br /&gt;
&lt;br /&gt;
В примерах показываются такие трансформации:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;ds:Transforms&amp;gt;
    &amp;lt;ds:Transform Algorithm=&lt;span class='str'&gt;"http://www.w3.org/2000/09/xmldsig#enveloped-signature"&lt;/span&gt;/&amp;gt;
    &amp;lt;ds:Transform Algorithm=&lt;span class='str'&gt;"http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"&lt;/span&gt;/&amp;gt;
&amp;lt;/ds:Transforms&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
У меня получилось только так (используемая библиотека wss4j не даёт это настраивать, ну или я не нашёл):&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;ds:Transforms&amp;gt;
    &amp;lt;ds:Transform Algorithm=&lt;span class='str'&gt;"http://www.w3.org/2001/10/xml-exc-c14n#"&lt;/span&gt;/&amp;gt;
&amp;lt;/ds:Transforms&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
На что это влияет? При этом канонизацию мне удалось выставить как надо:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;ds:CanonicalizationMethod Algorithm=&lt;span class='str'&gt;"http://www.w3.org/TR/2001/REC-xml-c14n-20010315"&lt;/span&gt;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Почему вообще это разные вещи? В моём понимании канонизация это когда XML приводится в единообразный вид согласно определённого алгоритма (удаляются незначащие пробелы, например), переводится в массив байтов например через UTF-8 кодировку и дальше уже с этого массива байтов снимается хеш, который подписывается. А зачем тогда какие-то ещё трансформации?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Tue, 21 May 2019 15:09:22 GMT</pubDate>
		
			<author>vsb &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>xslt v1: суммирование атрибутов предыдущих элементов по условию</title>
		<link>http://rsdn.org/Forum/xml/7291349.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7291349</guid>
		<comments>http://rsdn.org/Forum/xml/7291349</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7291349</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7291349</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7291349</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем добрый день,&lt;br /&gt;
&lt;br /&gt;
задача: с помощью xslt v1 нужно собрать на выходе строку вида &amp;lt;Code&amp;gt;&amp;lt;Сумма_Value_с_одинаковыми_Code_для_Item_идущих_подряд&amp;gt;-... Т.е. для приведенного ниже xml результат должен выглядеть так: &lt;br /&gt;
A3-B7-A2-C13-A4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;
&amp;lt;MyXML&amp;gt;&lt;br /&gt;
	&amp;lt;Item id = "1"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;A&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;2&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;&lt;br /&gt;
	&amp;lt;Item id = "2"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;A&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;1&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;&lt;br /&gt;
	&amp;lt;Item id = "3"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;B&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;7&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;&lt;br /&gt;
	&amp;lt;Item id = "4"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;A&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;2&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;&lt;br /&gt;
	&amp;lt;Item id = "5"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;C&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;8&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;&lt;br /&gt;
	&amp;lt;Item id = "6"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;C&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;3&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;	&lt;br /&gt;
	&amp;lt;Item id = "7"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;C&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;2&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;		&lt;br /&gt;
	&amp;lt;Item id = "8"&amp;gt;&lt;br /&gt;
		 &amp;lt;Code&amp;gt;A&amp;lt;/Code&amp;gt; &lt;br /&gt;
		 &amp;lt;Value&amp;gt;4&amp;lt;/Value&amp;gt; &lt;br /&gt;
	&amp;lt;/Item&amp;gt;		&lt;br /&gt;
&amp;lt;/MyXML&amp;gt;[/h1]&lt;br /&gt;
&lt;br /&gt;
Подскажите, пожалуйста, такое вообще возможно сделать?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Tue, 06 Nov 2018 08:26:12 GMT</pubDate>
		
			<author>deepreal &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>XSD в DOM</title>
		<link>http://rsdn.org/Forum/xml/7290517.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7290517</guid>
		<comments>http://rsdn.org/Forum/xml/7290517</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7290517</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7290517</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7290517</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Добрый день.&lt;br /&gt;
&lt;br /&gt;
Ищу библиотеку для построения DOM дерева XSD схем, библиотека должна обрабатывать include, import, complex, union, у конечного строкового узла хотелось бы получить type, optional, minimum, maximum, pattern's, грубо говоря как в Altova XML Spy&lt;br /&gt;
По языкам хотелось бы С++(Qt), python, C# в порядке убывания, желательно кросплатформено.&lt;br /&gt;
В итого хочется по xsd формировать свое описание схемы данных в виде xml, но ограниченное по сравнению с xsd(без всяких xs:id и т.д.).&lt;br /&gt;
&lt;br /&gt;
Кто нибудь встречал или пользовался такими библиотеками? В xercesc и QXmlSchemaValidator такой функциональности не нашел, валидировать по схеме они могут, но до внутреннего представления доступа нет.&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Mon, 05 Nov 2018 08:28:19 GMT</pubDate>
		
			<author>Igore &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Перенести результаты выполнения хранимой процедуры в XML-файл.</title>
		<link>http://rsdn.org/Forum/xml/7019379.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/7019379</guid>
		<comments>http://rsdn.org/Forum/xml/7019379</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7019379</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7019379</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7019379</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть хранимая процедура в базе на SQL-сервере. Она формирует данные в виде xml со всеми нужными мне группировками(FOR XML).&lt;br /&gt;
Нужно средствами sql(например,из другой хранимой процедуры) записать эти результаты в xml-файл и добавить в него заголовок "&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;".&lt;br /&gt;
Я так понял для этого служит утилита BCP, но как записать с её помощь результаты выполнения хранимой процедуры так и не понял.&lt;br /&gt;
И ещё проблема, что при таком заголовке "теряются" русские буквы.&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Sun, 14 Jan 2018 11:12:18 GMT</pubDate>
		
			<author>Bob &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>XPATH</title>
		<link>http://rsdn.org/Forum/xml/6693823.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6693823</guid>
		<comments>http://rsdn.org/Forum/xml/6693823</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6693823</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6693823</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6693823</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;есть хмл&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;x&amp;gt;&lt;br /&gt;
  &amp;lt;y&amp;gt;Текст не нужун&amp;lt;/y&amp;gt;&lt;br /&gt;
  &amp;lt;z&amp;gt;текст1&amp;lt;/z&amp;gt;&lt;br /&gt;
  текст2&lt;br /&gt;
  &amp;lt;z&amp;gt;текст3&amp;lt;/z&amp;gt;&lt;br /&gt;
&amp;lt;/x&amp;gt;&lt;br /&gt;
&lt;br /&gt;
нужно получить текствое значение элемента x, без поделемента y.&lt;br /&gt;
&lt;br /&gt;
текст1 &lt;br /&gt;
текст2 &lt;br /&gt;
текст3&lt;br /&gt;
&lt;br /&gt;
пробую как то так, не получается&lt;br /&gt;
string(x/self::node()[not(y)])&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Fri, 10 Feb 2017 10:35:06 GMT</pubDate>
		
			<author>SeLo &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>XPATH - вся ветка включая узлы атрибуты, текстовые узлы и т.д.</title>
		<link>http://rsdn.org/Forum/xml/6665397.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6665397</guid>
		<comments>http://rsdn.org/Forum/xml/6665397</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6665397</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6665397</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6665397</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Подскажите, существует ли возможность в xpath получить все содержимое конкретной ветки?&lt;br /&gt;
Или только рекурсивный обход?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Fri, 13 Jan 2017 15:43:29 GMT</pubDate>
		
			<author>dosik &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>Как применять абстрактные правила к атрибутам на Скиматроне?</title>
		<link>http://rsdn.org/Forum/xml/6527037.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6527037</guid>
		<comments>http://rsdn.org/Forum/xml/6527037</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6527037</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6527037</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6527037</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Диджей Скиматрон на этой сцене&lt;br /&gt;
&lt;br /&gt;
Если я хочу иметь какое-то общее правило для узлов — например, текст узла должен быть числом с плавающей точкой, то это легко сделать с помощью абстрактных правил:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;  &amp;lt;sch:rule abstract="true" id="float-number"&amp;gt;
    &amp;lt;sch:assert test="matches(., '^(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN$')"&amp;gt;Element &amp;lt;sch:value-of select="name(.)"/&amp;gt; must be decimal numeral with or without a decimal point, numeral in scientific (exponential) notation, or one of INF, +INF,'-INF or NaN literals&amp;lt;/sch:assert&amp;gt;
  &amp;lt;/sch:rule&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
И далее это правило можно применять к любому узлу:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;    &amp;lt;sch:rule context="/*/opioid/content"&amp;gt;
      &amp;lt;sch:extends rule="float-number"/&amp;gt;
      &amp;lt;sch:extends rule="be-high"/&amp;gt;
    &amp;lt;/sch:rule&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Как можно красиво писать такие же правила для атрибутов??&lt;br /&gt;
&lt;br /&gt;
Если писать напрямую:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;    &amp;lt;sch:rule context="/*/opioid/@content"&amp;gt;
      &amp;lt;sch:extends rule="float-number"/&amp;gt;
    &amp;lt;/sch:rule&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
то это не работает (причина понятна, если посмотреть XSL, в который этот скиматрон компилируется).&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Wed, 17 Aug 2016 22:55:12 GMT</pubDate>
		
			<author>watchyourinfo &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>tinyxpath: что не так в выражении</title>
		<link>http://rsdn.org/Forum/xml/6519057.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6519057</guid>
		<comments>http://rsdn.org/Forum/xml/6519057</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6519057</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6519057</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6519057</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Пробую получить узел в зависимости от условия, исходный xml:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;metadata&amp;gt;
&amp;lt;params&amp;gt;
    &amp;lt;Grouped&amp;gt;1&amp;lt;/Grouped&amp;gt;
&amp;lt;/params&amp;gt;
&amp;lt;/metadata&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
XPath: /metadata[/metadata/params/Grouped/text()="1"]&lt;br /&gt;
&lt;br /&gt;
во всех онлайновых проверялках все работает как надо, tinyxpath возвращает 0 найдено, в DEBUG логе ошибок нет, в чем может быть причина?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Mon, 08 Aug 2016 09:14:35 GMT</pubDate>
		
			<author>RonWilson &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>[C#] WSDL: Генерация зависимых сборок</title>
		<link>http://rsdn.org/Forum/xml/6347499.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6347499</guid>
		<comments>http://rsdn.org/Forum/xml/6347499</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6347499</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6347499</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6347499</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем привет!&lt;br /&gt;
&lt;br /&gt;
Стоит тривиальная задача: скомпилировать сборки на основе WSDL-файла и набора XSD-схем для общения с WebService по SOAP.&lt;br /&gt;
Первая же ссылка в гугле расскажет, как это сделать: &lt;a class="stackoverflow m" href="http://stackoverflow.com/questions/6600855/generating-a-web-service-proxy-from-a-wsdl-c-sharp" target="_blank"&gt;http://stackoverflow.com/questions/6600855/generating-a-web-service-proxy-from-a-wsdl-c-sharp&lt;/a&gt;&lt;br /&gt;
Полученные файлы перегоняются в dll при помощи csc.exe /t:library&lt;br /&gt;
&lt;br /&gt;
Но есть нюанс &amp;mdash; WebService'ов несколько. При этом каждый из них использует общие типы (coreTypes.xsd).&lt;br /&gt;
При генерации сборок "в лоб" мы получим N независимых библиотек, в каждой из которых присутствуют типы из CoreTypes.&lt;br /&gt;
Хочется же, скомпилировать отдельно CoreTypes.dll а затем все прочие WSDL, вместе с XSD схемами ссылаясь на эту DLL. Как такое организовать? Или придётся Mono.Cecil'ом потрошить сборки после компиляции?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Fri, 12 Feb 2016 17:03:42 GMT</pubDate>
		
			<author>LWhisper &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>XML работает, XML+XSD - нет</title>
		<link>http://rsdn.org/Forum/xml/6272506.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6272506</guid>
		<comments>http://rsdn.org/Forum/xml/6272506</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6272506</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6272506</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6272506</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть у меня XML (см. ниже). Я его пытаюсь прочитать при помощи MsXmlEngine/C++ примерно следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;CoCreateInstance(&lt;span class='kw'&gt;__uuidof&lt;/span&gt;(DOMDocument60), NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&amp;amp;m_pDocument));
m_pDocument-&amp;gt;put_async(VARIANT_FALSE);  
m_pDocument-&amp;gt;put_validateOnParse(VARIANT_FALSE);
m_pDocument-&amp;gt;put_resolveExternals(VARIANT_FALSE);
m_pDocument-&amp;gt;load(varFileName, &amp;amp;varStatus);
m_pDocument-&amp;gt;selectNodes((bstr_t)&lt;span class='str'&gt;"//Documents/Document/TTNInformBReg/Header/*"&lt;/span&gt;, &amp;amp;pNodes);
&lt;span class='kw'&gt;long&lt;/span&gt; lCount = 0;
pNodes-&amp;gt;get_length(&amp;amp;lCount);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
то в результате lCount становится равным нулю. Если же в исходном XML срубить все ссылки на XSD, то lCount после исполнения кода выше показывает то, что должен показывать.&lt;br /&gt;
&lt;br /&gt;
Что я делаю не так?&lt;br /&gt;
&lt;br /&gt;
P.S. И исходный XML, и XML с отрезанными XSD в IE замечатально открывается.&lt;br /&gt;
&lt;br /&gt;
Вот исходный XML:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;ns:Documents xmlns:wbr="http://fsrar.ru/WEGAIS/TTNInformBReg" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&amp;gt;
&amp;lt;ns:Owner&amp;gt;
&amp;lt;ns:FSRAR_ID&amp;gt;3463047&amp;lt;/ns:FSRAR_ID&amp;gt;
&amp;lt;/ns:Owner&amp;gt;
&amp;lt;ns:Document&amp;gt;
&amp;lt;ns:TTNInformBReg&amp;gt;
&amp;lt;wbr:Header xmlns:wbr="http://fsrar.ru/WEGAIS/TTNInformBReg" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&amp;gt;
&amp;lt;wbr:Identity&amp;gt;1&amp;lt;/wbr:Identity&amp;gt;
&amp;lt;wbr:WBRegId&amp;gt;0000002167&amp;lt;/wbr:WBRegId&amp;gt;
&amp;lt;wbr:EGAISFixNumber&amp;gt;201500000000002&amp;lt;/wbr:EGAISFixNumber&amp;gt;
&amp;lt;wbr:EGAISFixDate&amp;gt;2015-03-18&amp;lt;/wbr:EGAISFixDate&amp;gt;
&amp;lt;wbr:WBNUMBER&amp;gt;9999&amp;lt;/wbr:WBNUMBER&amp;gt;
&amp;lt;wbr:WBDate&amp;gt;2015-02-16&amp;lt;/wbr:WBDate&amp;gt;
&amp;lt;wbr:Shipper&amp;gt;
&amp;lt;oref:ClientRegId&amp;gt;00040218&amp;lt;/oref:ClientRegId&amp;gt;
&amp;lt;oref:INN&amp;gt;0260009319&amp;lt;/oref:INN&amp;gt;
&amp;lt;oref:KPP&amp;gt;026001001&amp;lt;/oref:KPP&amp;gt;
&amp;lt;oref:FullName&amp;gt;Общество с Ограниченной ответственностью &amp;amp;quot;Радуга&amp;amp;quot;(Магазин)&amp;lt;/oref:FullName&amp;gt;
&amp;lt;oref:ShortName&amp;gt;Радуга&amp;lt;/oref:ShortName&amp;gt;
&amp;lt;oref:address&amp;gt;
&amp;lt;oref:Country&amp;gt;643&amp;lt;/oref:Country&amp;gt;
&amp;lt;oref:RegionCode&amp;gt;02&amp;lt;/oref:RegionCode&amp;gt;
&amp;lt;oref:description&amp;gt;643,,Москва ул. Большие пробки,31/1,,,&amp;lt;/oref:description&amp;gt;
&amp;lt;/oref:address&amp;gt;
&amp;lt;/wbr:Shipper&amp;gt;
&amp;lt;wbr:Consignee&amp;gt;
&amp;lt;oref:ClientRegId&amp;gt;00040217&amp;lt;/oref:ClientRegId&amp;gt;
&amp;lt;oref:INN&amp;gt;5907027035&amp;lt;/oref:INN&amp;gt;
&amp;lt;oref:KPP&amp;gt;590701001&amp;lt;/oref:KPP&amp;gt;
&amp;lt;oref:FullName&amp;gt;ООО &amp;amp;quot;Кое-Как&amp;amp;quot; (склад)&amp;lt;/oref:FullName&amp;gt;
&amp;lt;oref:ShortName&amp;gt;?&amp;lt;/oref:ShortName&amp;gt;
&amp;lt;oref:address&amp;gt;
&amp;lt;oref:Country&amp;gt;643&amp;lt;/oref:Country&amp;gt;
&amp;lt;oref:RegionCode&amp;gt;59&amp;lt;/oref:RegionCode&amp;gt;
&amp;lt;oref:description&amp;gt;643,,Москва, Спартаковская,12,,,&amp;lt;/oref:description&amp;gt;
&amp;lt;/oref:address&amp;gt;
&amp;lt;/wbr:Consignee&amp;gt;
&amp;lt;/wbr:Header&amp;gt;
&amp;lt;wbr:Content xmlns:wbr="http://fsrar.ru/WEGAIS/TTNInformBReg" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&amp;gt;
&amp;lt;wbr:Position&amp;gt;
&amp;lt;wbr:Identity&amp;gt;1&amp;lt;/wbr:Identity&amp;gt;
&amp;lt;wbr:InformBRegId&amp;gt;000000000002142&amp;lt;/wbr:InformBRegId&amp;gt;
&amp;lt;/wbr:Position&amp;gt;
&amp;lt;/wbr:Content&amp;gt;
&amp;lt;/ns:TTNInformBReg&amp;gt;
&amp;lt;/ns:Document&amp;gt;
&amp;lt;/ns:Documents&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Tue, 08 Dec 2015 18:34:06 GMT</pubDate>
		
			<author>sushko &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>SOAP: как десериализовать из строки (C#)?</title>
		<link>http://rsdn.org/Forum/xml/6212330.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6212330</guid>
		<comments>http://rsdn.org/Forum/xml/6212330</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6212330</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6212330</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6212330</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;C#, VS 2012, .NET 4.5+&lt;br /&gt;
&lt;br /&gt;
Моя программа получает строки, являющиеся сериализацией объектов некоего класса в SOAP. Самого этого класса у меня нет.&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;SOAP-ENV:Envelope xmlns:xsi=".........."&amp;gt;
&amp;lt;SOAP-ENV:Body&amp;gt;
&amp;lt;a1:DeviceServer_x002B_Details id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/SecretName1.SecretName2.CommonLibrary.Classes/CommonLibrary%2C%20Version%3D2.7.5753.35231%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"&amp;gt;
&amp;lt;host id="ref-3"&amp;gt;Domnitch&amp;lt;/host&amp;gt;
&amp;lt;port&amp;gt;50116&amp;lt;/port&amp;gt;
&amp;lt;protocol&amp;gt;tcp&amp;lt;/protocol&amp;gt;
&amp;lt;deviceTypeEnum&amp;gt;Quest&amp;lt;/deviceTypeEnum&amp;gt;
&amp;lt;timePeriod_Normal&amp;gt;2000&amp;lt;/timePeriod_Normal&amp;gt;
&amp;lt;timePeriod_Resend&amp;gt;1000&amp;lt;/timePeriod_Resend&amp;gt;
&amp;lt;timePeriod_Disconnect&amp;gt;5000&amp;lt;/timePeriod_Disconnect&amp;gt;
&amp;lt;resendCount&amp;gt;2&amp;lt;/resendCount&amp;gt;
&amp;lt;/a1:DeviceServer_x002B_Details&amp;gt;
&amp;lt;/SOAP-ENV:Body&amp;gt;
&amp;lt;/SOAP-ENV:Envelope&amp;gt;&lt;/code&gt;&lt;/pre&gt;Очень хочется извлечь данные из строки в некий самодельный класс примерно так:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;public class MyClass
{
        public class Details
        {
            [SoapElement("host")]
            public string Host { get; set; }
 
            [SoapElement("port")]
            public int Port { get; set; }
        }
 
       public Details GetDetail(string s)
            {
                var formatter = new SoapFormatter();
                var reader = new MemoryStream(Encoding.Unicode.GetBytes(value));
                var detail = (Details)formatter.Deserialize(reader);
                reader.Close();
                return detail;
            }
}&lt;/code&gt;&lt;/pre&gt;Не получается &amp;mdash; при исполнении SOAP заявляет, что не знает сборки SecretName1.SecretName2.CommonLibrary.Classes... и так далее. &lt;br /&gt;
Взять эту сборку мне неоткуда, создавать ее самому крайне громоздко.&lt;br /&gt;
Нет ли какого средства &amp;mdash; задать какие-то атрибуты к примеру?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Tue, 13 Oct 2015 14:36:41 GMT</pubDate>
		
			<author>Domnitch &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Туплю с XPath</title>
		<link>http://rsdn.org/Forum/xml/6203130.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/xml/6203130</guid>
		<comments>http://rsdn.org/Forum/xml/6203130</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6203130</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6203130</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6203130</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет друзяки!&lt;br /&gt;
&lt;br /&gt;
Чета не пойму я, как составить xpath для:&lt;br /&gt;
Имею SOAP_BODY&lt;br /&gt;
&amp;lt;soap:Envelope xmlns:soap="&lt;a class="m" href="http://schemas.xmlsoap.org/soap/envelope/" target="_blank"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/a&gt;" xmlns:xsi="&lt;a class="m" href="http://www.w3.org/2001/XMLSchema-instance" target="_blank"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;" xmlns:xsd="&lt;a class="m" href="http://www.w3.org/2001/XMLSchema" target="_blank"&gt;http://www.w3.org/2001/XMLSchema&lt;/a&gt;"&amp;gt;&lt;br /&gt;
  &amp;lt;soap:Body&amp;gt;&lt;br /&gt;
    &amp;lt;getReservationDataSimpleResponse xmlns="&lt;a class="m" href="http://tempuri.org/" target="_blank"&gt;http://tempuri.org/&lt;/a&gt;"&amp;gt;&lt;br /&gt;
      &amp;lt;reservationDataSimpleRes&amp;gt;&lt;br /&gt;
        &amp;lt;reservationData Number="6869643" StartDate="2015-09-30T00:00:00" EndDate="2015-10-05T00:00:00" Tour="Шарм-эль-Шейх (Sharm El Sheikh)" ResDebt="1283.8312" ResCurrency="USD" PayDebt="82807.04" PayCurrency="RUB"/&amp;gt;&lt;br /&gt;
      &amp;lt;/reservationDataSimpleRes&amp;gt;&lt;br /&gt;
    &amp;lt;/getReservationDataSimpleResponse&amp;gt;&lt;br /&gt;
  &amp;lt;/soap:Body&amp;gt;&lt;br /&gt;
&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Делаю раз: &lt;br /&gt;
	&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;objXML.LoadXml(SOAP_BODY);

        XmlNamespaceManager objNSMan = &lt;span class='kw'&gt;new&lt;/span&gt; XmlNamespaceManager(objXML.NameTable);
        objNSMan.AddNamespace(&lt;span class='str'&gt;"soap"&lt;/span&gt;, &lt;span class='str'&gt;"http://schemas.xmlsoap.org/soap/envelope/"&lt;/span&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
	Пытаюсь получить: &lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;objReservationDataNode = objXML.selectSingleNode(&lt;span class='str'&gt;"/soap:Envelope/soap:Body/getReservationDataSimpleResponse/reservationDataSimpleRes/reservationData"&lt;/span&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
и получаю: &lt;b&gt;Требуется диспетчер пространств имен или XsltContext. Этот запрос содержит префикс, переменную или определенную пользователем функцию.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Как победить?&lt;/div&gt;
				
		</description>
		
		<category>xml</category>
		<pubDate>Mon, 05 Oct 2015 13:07:09 GMT</pubDate>
		
			<author>hermit. &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>
</channel>
</rss>
