Генерация XML-запроса через xsd с использованием generateDS - PullRequest
0 голосов
/ 11 июля 2019

Я бы хотел а) генерировать XML-запросы б) и разбор ответов

на основе схемы (.xsd), полученной от одного из OEM.

Я исследовал сеть, и, кажется, именно то, что я искал, генерировал DS, однако я изо всех сил стараюсь заставить его работать.

Мне удалось создать классы Python, но я не уверен, что это правильный подход.

1) Я пытаюсь сгенерировать XML-запросы во время выполнения, используя модули Python, созданные из XSD, является ли этот подход правильным для производственных приложений. ИЛИ ЖЕ Должен ли я генерировать XML-запросы через xml.etree.ElementTree (я понимаю, что в фоновом режиме generateDS также использует это).

2) Когда я создаю экземпляр класса, он не генерирует полный вывод xml.

конечный результат должен выглядеть примерно так:

<BroadsoftDocument protocol = "OCI" xmlns="C" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sessionId xmlns="">10.21.197.17,22307196,1562598749074</sessionId>

    <command xsi:type="AuthenticationRequest" xmlns="">
        <userId>provadmin_main@alpha.haystack.amazon.com</userId>
    </command>
</BroadsoftDocument>```


Help on class AuthenticationRequest in module OCISchemaLogin_gds:

class AuthenticationRequest(OCIRequest)
 |  AuthenticationRequest(echo=None, userId=None, **kwargs_)
 |  
 |  AuthenticationRequest is 1st stage of the 2 stage OCI login process.
 |  
 |  Method resolution order:
 |      AuthenticationRequest
 |      OCIRequest
 |      OCICommand
 |      GeneratedsSuper
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __init__(self, echo=None, userId=None, **kwargs_)
 |      Initialize self.  See help(type(self)) for accurate signature.
 |  


CODE:
auth_req = OCISchemaLogin_gds.AuthenticationRequest(userId = self.userId,)
command =[OCISchemaLogin_gds.OCICommand(extensiontype_='AuthenticationRequest') ]
message = OCISchemaLogin_gds.OCIMessage(protocol='OCI',sessionId=session, userId=self.userId, command= command)
message.export(sys.stdout,1)


OUTPUT:

    <OCIMessage  xmlns:None="C"  protocol="OCI">     <sessionId>992df876f417bc9215e68dffdac436b7b5fb485bc2dfb5cf8cf324c0ff143c0f</sessionId>
        <userId>chaadars_admin_lab</userId>
        <OCICommand xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AuthenticationRequest"/>
    </OCIMessage>
SUCCESSFUL

Я даже правильно его использую?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...