powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / А почему у меня correlate не работает?
3 сообщений из 3, страница 1 из 1
А почему у меня correlate не работает?
    #39088621
lfktk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто можеть помочь?
response из сервера:<a:RespItem>
  <a:bIN>123456748</a:bIN>
  <a:dataSource>0</a:dataSource>
  <a:fullAddress>г.xxx, Улица xxx , д.xx</a:fullAddress>
  <a:fullName>Гос. предприятие</a:fullName>
  <a:id>123456789456</a:id>
  <a:code>WW15</a:code>
  <a:rNN>987654321032</a:rNN>
</a:RespItem>  

************************************************

<xs:complexType name="RespItem">
  <xs:sequence>
    <xs:element name="bIN" nillable="true" type="xs:string"/>
    <xs:element name="dataSource" type="xs:unsignedByte"/>
    <xs:element name="fullAddress" nillable="true" type="xs:string"/>
    <xs:element name="fullName" nillable="true" type="xs:string"/>
    <xs:element name="id" type="xs:long"/>
    <xs:element name="code" nillable="true" type="xs:string"/>
    <xs:element name="rNN" nillable="true" type="xs:string"/>
  </xs:sequence>
</xs:complexType>класс в Intersystems cache:Class user.model.RespItem Extends (%RegisteredObject, %XML.Adaptor)
{
  Parameter XMLNAME = "RespMOItem";
  Property bIN As %String(MAXLEN = "", XMLNAME = "bIN");
  Property dataSource As %xsd.unsignedByte(XMLNAME = "dataSource");
  Property fullAddress As %String(MAXLEN = "", XMLNAME = "fullAddress");
  Property fullname As %String(MAXLEN = "", XMLNAME = "fullname");
  Property id As %Integer(XMLNAME = "id");
  Property code As %String(XMLNAME = "code");
  Property rNN As %String(MAXLEN = "", XMLNAME = "rNN");
  Property state As %String(XMLNAME = "state", XMLPROJECTION = "CONTENT");
}мой код:.....
  #dim xmlr As %XML.Reader = ##class(%XML.Reader).%New()
  d xmlr.OpenStream(response)
  d xmlr.Correlate("RespItem","User.model.RespItem")

  #dim item as User.model.RespItem
  s count=0
  while xmlr.Next(.item,.sc) {
    s count=count+1
     w count,!  
     w "name="_item.fullname,!
     w "id="_item.id,!
     w "code"_item.code,!
  }
...
Рейтинг: 0 / 0
А почему у меня correlate не работает?
    #39088756
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lfktkА почему у меня correlate не работает?Чтобы увидеть ошибку, замените

d xmlr.OpenStream(response)
d xmlr.Correlate("RespItem","User.model.RespItem")

на

d $system.OBJ.DisplayError(xmlr.OpenStream(response))
d $system.OBJ.DisplayError(xmlr.Correlate("RespItem","User.model.RespItem"))

PS: имя класса регистрозависимо: user.model.RespItem ≠ User.model.RespItem (d xmlr.Correlate("RespItem"," U ser.model.RespItem"))
Если " response из сервера " это веб, то можно воспользоваться сразу методом OpenURL: 8140106
...
Рейтинг: 0 / 0
А почему у меня correlate не работает?
    #39089992
lfktk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

Спасибо все заработало,

ошибки здесь:А почему у меня correlate не работает?
<a:fullName>Гос. предприятие</a:fullName>
=> Property fullname As %String(MAXLEN = "", XMLNAME = "fullname");
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / А почему у меня correlate не работает?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]