forked from openapi-generators/openapi-python-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxml.py
More file actions
56 lines (46 loc) · 1.76 KB
/
xml.py
File metadata and controls
56 lines (46 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from typing import Optional
from pydantic import BaseModel
class XML(BaseModel):
"""
A metadata object that allows for more fine-tuned XML model definitions.
When using arrays, XML element names are *not* inferred (for singular/plural forms)
and the `name` property SHOULD be used to add that information.
See examples for expected behavior.
"""
name: Optional[str] = None
"""
Replaces the name of the element/attribute used for the described schema property.
When defined within `items`, it will affect the name of the individual XML elements within the list.
When defined alongside `type` being `array` (outside the `items`),
it will affect the wrapping element and only if `wrapped` is `true`.
If `wrapped` is `false`, it will be ignored.
"""
namespace: Optional[str] = None
"""
The URI of the namespace definition.
Value MUST be in the form of an absolute URI.
"""
prefix: Optional[str] = None
"""
The prefix to be used for the [name](#xmlName).
"""
attribute: bool = False
"""
Declares whether the property definition translates to an attribute instead of an element.
Default value is `false`.
"""
wrapped: bool = False
"""
MAY be used only for an array definition.
Signifies whether the array is wrapped (for example, `<books><book/><book/></books>`)
or unwrapped (`<book/><book/>`).
Default value is `false`.
The definition takes effect only when defined alongside `type` being `array` (outside the `items`).
"""
class Config:
schema_extra = {
"examples": [
{"namespace": "http://example.com/schema/sample", "prefix": "sample"},
{"name": "aliens", "wrapped": True},
]
}