| Наступна ревізія | Попередня ревізія |
| integration:xsd_vs_namespaces [2014/12/26 17:23] – создано wiki_admin | integration:xsd_vs_namespaces [2022/05/23 15:26] (поточний) – зовнішнє редагування 127.0.0.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}} |