Користувальницькі налаштування

Налаштування сайту


integration:xsd_vs_namespaces

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
integration:xsd_vs_namespaces [2014/12/26 17:23] – создано wiki_adminintegration:xsd_vs_namespaces [2022/05/23 15:26] (поточний) – зовнішнє редагування 127.0.0.1
Рядок 1: Рядок 1:
 +====== XSD vs Namespaces ======
 +Всем привет.
 +У одного нашего коллеги была проблема следующего характера.
 + 
 +Создал он через EAI Siebel Wizard Integration Object. При помощи данного интеграционного объекта он должен был читать xml из файловой системы (EAI Message).
 +После этого он сгенерировал XSD описание данного объекта при помощи кнопки Generate Schema.
 +Получилось очень даже хорошо. Но после того, как он передал данный XSD файл коллегам, которые готовили XML – выяснилось, что XML-и генерировались с префиксом “xsdlocal” (оно же namespace).
 +В последствии используя EAI стандартные сервисы прочитать он это не сумел (смотреть примеры ниже: XSD, XML, Namespace).
 +Читал он стандартным сервисом: EAI XML Read from File, метод: ReadEAIMsg.
 + 
 +Получите такую ошибку:
  
 +{{customization:xsdtonamespace.png?700|}}
 +
 +
 +По сему, мой совет такой: добавляйте следующий параметр при использовании данного метода, если имеете проблему выше:
 +·         StripNamespace = True.
 + 
 +И получается красота: в исходящем параметре SiebelMessage прочитанное сообщение (смотреть Out.xml).
 + 
 + 
 + 
 +PS: если вам глаза сильно режет этот namespace в элементах, можно установить elementFormDefault="unqualified" (но в корневом элементе он не пропадает, смотреть: Unqualified).
 +
 +===== XSD: =====
 +
 +<code xml>
 +<?xml version="1.0" encoding="UTF-8"?>
 +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsdLocal="http://www.siebel.com/xml/SUN%20Address" targetNamespace="http://www.siebel.com/xml/SUN%20Address" elementFormDefault="qualified" attributeFormDefault="unqualified">
 +   <xsd:annotation>
 +      <xsd:documentation>Copyright (C) 2001-2004 Siebel Systems, Inc. All rights reserved. Siebel XSD Generation</xsd:documentation>
 +   </xsd:annotation>
 +   <xsd:element name="SiebelMessage" type="xsdLocal:SiebelMessage" />
 +   <xsd:complexType name="SiebelMessage">
 +      <xsd:sequence>
 +         <xsd:element name="ListOfSunAddress" type="xsdLocal:ListOfSunAddress" minOccurs="0" maxOccurs="1" />
 +      </xsd:sequence>
 +      <xsd:attribute name="MessageId" type="xsd:string" />
 +      <xsd:attribute name="MessageType" type="xsd:string" />
 +      <xsd:attribute name="IntObjectName" type="xsd:string" />
 +      <xsd:attribute name="IntObjectFormat" type="xsd:string" />
 +      <xsd:attribute name="HeaderSource" type="xsd:string" />
 +      <xsd:attribute name="HeaderDataObject" type="xsd:string" />
 +      <xsd:attribute name="HeaderFileCreatedDateTime" type="xsdLocal:string30" />
 +      <xsd:attribute name="HeaderDataStartDateTime" type="xsdLocal:string30" />
 +      <xsd:attribute name="HeaderDataEndDateTime" type="xsdLocal:string30" />
 +   </xsd:complexType>
 +   <xsd:complexType name="ListOfSunAddress">
 +      <xsd:sequence>
 +         <xsd:element name="CutAddress" type="xsdLocal:CutAddress" minOccurs="1" maxOccurs="unbounded" />
 +      </xsd:sequence>
 +   </xsd:complexType>
 +   <xsd:complexType name="CutAddress">
 +      <xsd:sequence>
 +         <xsd:element name="AddressSourceId" type="xsdLocal:string50" minOccurs="1" maxOccurs="1" />
 +         <xsd:element name="Operation" type="xsdLocal:string10" minOccurs="1" maxOccurs="1" />
 +         <xsd:element name="AddressLine1" type="xsdLocal:string200" minOccurs="1" maxOccurs="1" />
 +         <xsd:element name="AddressLine2" type="xsdLocal:string100" minOccurs="0" maxOccurs="1" />
 +         <xsd:element name="AddressLine3" type="xsdLocal:string100" minOccurs="0" maxOccurs="1" />
 +         <xsd:element name="City" type="xsdLocal:string50" minOccurs="1" maxOccurs="1" />
 +         <xsd:element name="State" type="xsdLocal:string10" minOccurs="0" maxOccurs="1" />
 +         <xsd:element name="PostalCode" type="xsdLocal:string30" minOccurs="1" maxOccurs="1" />
 +         <xsd:element name="Country" type="xsdLocal:string30" minOccurs="0" maxOccurs="1" />
 +      </xsd:sequence>
 +   </xsd:complexType>
 +   <xsd:simpleType name="string50">
 +      <xsd:restriction base="xsd:string">
 +         <xsd:maxLength value="50" />
 +      </xsd:restriction>
 +   </xsd:simpleType>
 +   <xsd:simpleType name="string10">
 +      <xsd:restriction base="xsd:string">
 +         <xsd:maxLength value="10" />
 +      </xsd:restriction>
 +   </xsd:simpleType>
 +   <xsd:simpleType name="string30">
 +      <xsd:restriction base="xsd:string">
 +         <xsd:maxLength value="30" />
 +      </xsd:restriction>
 +   </xsd:simpleType>
 +   <xsd:simpleType name="string100">
 +      <xsd:restriction base="xsd:string">
 +         <xsd:maxLength value="100" />
 +      </xsd:restriction>
 +   </xsd:simpleType>
 +   <xsd:simpleType name="string200">
 +      <xsd:restriction base="xsd:string">
 +         <xsd:maxLength value="200" />
 +      </xsd:restriction>
 +   </xsd:simpleType>
 +</xsd:schema>
 +</code>
 +
 +===== XML: =====
 +
 +<code xml>
 +<?xml version="1.0" encoding="UTF-8"?>
 +<xsdLocal:SiebelMessage xmlns:xsdLocal="http://www.siebel.com/xml/SUN%20Address" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.siebel.com/xml/SUN%20Address file:///C:/Users/syniohubvlad/Desktop/XSD.xsd" MessageId="string" MessageType="string" IntObjectName="string" IntObjectFormat="string" HeaderSource="string" HeaderDataObject="string" HeaderFileCreatedDateTime="string" HeaderDataStartDateTime="string" HeaderDataEndDateTime="string">
 +   <xsdLocal:ListOfSunAddress>
 +      <xsdLocal:CutAddress>
 +         <xsdLocal:AddressSourceId>string</xsdLocal:AddressSourceId>
 +         <xsdLocal:Operation>string</xsdLocal:Operation>
 +         <xsdLocal:AddressLine1>string</xsdLocal:AddressLine1>
 +         <xsdLocal:AddressLine2>string</xsdLocal:AddressLine2>
 +         <xsdLocal:AddressLine3>string</xsdLocal:AddressLine3>
 +         <xsdLocal:City>string</xsdLocal:City>
 +         <xsdLocal:State>string</xsdLocal:State>
 +         <xsdLocal:PostalCode>string</xsdLocal:PostalCode>
 +         <xsdLocal:Country>string</xsdLocal:Country>
 +      </xsdLocal:CutAddress>
 +   </xsdLocal:ListOfSunAddress>
 +</xsdLocal:SiebelMessage>
 +</code>
 +
 +
 +
 +===== Что такое namespace: =====
 +[[http://en.wikipedia.org/wiki/Namespace_(computer_science)#In_programming_languages]]
 +
 +
 +===== Unqualified: =====
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<xsdLocal:SiebelMessage xmlns:xsdLocal="http://www.siebel.com/xml/SUN%20Address" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.siebel.com/xml/SUN%20Address file:///C:/Users/syniohubvlad/Desktop/XSD.xsd" MessageId="string" MessageType="string" IntObjectName="string" IntObjectFormat="string" HeaderSource="string" HeaderDataObject="string" HeaderFileCreatedDateTime="string" HeaderDataStartDateTime="string" HeaderDataEndDateTime="string">
 +  <ListOfSunAddress>
 +    <CutAddress>
 +      <AddressSourceId>string</AddressSourceId>
 +      <Operation>string</Operation>
 +      <AddressLine1>string</AddressLine1>
 +      <AddressLine2>string</AddressLine2>
 +      <AddressLine3>string</AddressLine3>
 +      <City>string</City>
 +      <State>string</State>
 +      <PostalCode>string</PostalCode>
 +      <Country>string</Country>
 +    </CutAddress>
 +  </ListOfSunAddress>
 +</xsdLocal:SiebelMessage>
 +</code>
 +
 +
 +--- //[[vladyslav.syniohubv@areon.ua|Владислав]] 2014/12/02 17:42//
 +{{tag>XML}}