XML message about material information
<Material version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"> <id><!--required, xs:integer, material ID--></id> <seq><!--optional, xs:integer, material serial No., which changes every time the material is modified; this field is only valid on the link between the server and the terminal--></seq> <materialName><!--required, xs:string, material name--></materialName> <materialRemarks><!--required, xs:string, material description--></materialRemarks> <materialType><!--required, xs:string, material type: "static"-local material, "dynamic"-dynamic material--></materialType> <approveState><!--optional, xs:string, approval status: "approved"-pass, "notPass"-not pass, "notApprove"-not approved--></approveState> <approveRemarks><!--optional, xs:string, approval remarks--></approveRemarks> <shareProperty><!--optional, xs:string, shared property: public, private--></shareProperty> <uploadUser><!--read-only, required, xs:string, uploader, read-only--></uploadUser> <uploadTime><!--read-only, required, xs:time, upload time (ISO 8601 format)--></uploadTime> <materialEncrypt><!--optional, xs:integer, material secret key, which can be used for verifying the correctness of materials received by the terminal; this field is only valid on the link between the server and the terminal, e.g., JjEmNTA3NDg5NCY0JjI3OTM5MjAmYWEmMzYyOTM5OCZhMCY0MjAzMDQwJmI1JjQzMzc3ODgmNDg=--></materialEncrypt> <orgNo><!--optional, xs:integer, organization No.--></orgNo> <orgName><!--optional, xs:string, read-only--></orgName> <replaceTerminal><!--optional, xs:boolean, whether the material is updated to the terminal, this field is valid only when replacing materials--></replaceTerminal> <StaticMaterial><!--dep--> <staticMaterialType> <!--dependent, xs:string, local material type--> </staticMaterialType> <picFormat><!--dependent, xs:string, image format: GIF, BMP, JPG, PNG--></picFormat> <flashFormat><!--dependent, xs:string, flash format: SWF--></flashFormat> <audioFormat><!--dependent, xs:string, audio format: MP3, WAV, WMA--></audioFormat> <videoFormat><!--dependent, xs:string, video format: RM, RMVB, ASF, AVI, MPG, 3GP, MOV, MKV, WMV, FLV, MP4--></videoFormat> <documentFormat><!--dependent, xs:string, document format: TXT--></documentFormat> <pptFormat><!--dependent, xs:string, slide format: PPT, PPTX--></pptFormat> <docFormat><!--dependent, xs:string, word document format: DOC, DOCX--></docFormat> <excelFormat><!--dependent, xs:string, table format: XLS, XLSX--></excelFormat> <pdfFormat><!--dependent, xs:string, PDF--></pdfFormat> <webFormat><!--dependent, xs:string, web format: HTML, HTM--></webFormat> <appFormat><!--dependent, xs:string, application format: APK--></appFormat> <fileSize><!--required, xs:integer, file size, unit: byte--></fileSize> <duration><!--optional, xs:integer, playing duration, this filed is valid only when the material is a video or slide file, unit: second--></duration> <uuid><!--dependent, xs:string, UUID provided by the server to identify the material, this field is valid only when StorageInfo exists; only 8520 platform savs materials on the storage server--></uuid> <staticMaterialUrl><!--dependent, xs:string, material URL, this field is valid only when StorageInfo exists; only 8520 platform savs materials on the storage server--></staticMaterialUrl> <materialURL><!--optional, xs:string, material storage URL. If this node is returned, the device will synchronize these data automatically until synchronization succeeded or failed due to exception (during synchronization, the API cannot be blocked), and there is no need to call the API of uploading materials--></materialURL> <!--Note: 1. For a local material, you need to upload a file. If uploading this file failed, the material ID is invalid (only for Web). 2. If this node is returned, the material ID will be valid after synchronizing data succeeded and the asynchronous status event (eventType: asyncNotification) is uploaded--> </StaticMaterial> <DynamicMaterial><!--dependent--> <dynamicMaterialType opt="web,socket,rss,realStream,generalData,picUrl,dataSource"><!--dependent, xs:string, dynamic material type--></dynamicMaterialType> <webUrl><!--dependent, xs:string, web URL--></webUrl> <rssUrl><!--dependent, xs:string, RSS URL--></rssUrl> <picUrl><!--dependent, xs:string, picture URL--></picUrl> <RealStream><!--dependent, real-time stream--> <destionType opt="streamMedia,normalIPC"><!--required, xs:string, streaming terminal type: Stream Media Server, normal network camera--></destionType> <streamMediaUrl><!--dependent, xs:string, streaming server URL--></streamMediaUrl> <NormalIPC><!--dep--> <IpAddress><!--dep--> <ipVersion opt="v4,v6,dual"><!--required, xs:string--></ipVersion> <ipAddress><!--dependent, xs:string--></ipAddress> <ipv6Address><!--dependent, xs:string--></ipv6Address> </IpAddress> <portNo><!--required, xs:integer--></portNo> <channelNo><!--required, xs:integer, channel No.--></channelNo> <userName><!--required, xs:string, user name for logging to deivces, which is write-only and must be encrypted when transmission》--></userName> <passWord><!--required, xs:string, password for logging to devices, which is write-only and must be encrypted when transmission--></passWord> <transmitProtocol opt="tcp,udp,mcast"><!--optional, xs:string, transmission protocol--></transmitProtocol> <streamType opt="main,sub,third"><!--optional, xs:string, stream type--></streamType> </NormalIPC> <privateStreamMediaUrl><!--dependent, xs:string, private stream data--></privateStreamMediaUrl> <dataType opt="capture,liveVideo"><!--optional, xs:string, data type: capture, "liveVideo"-live video--></dataType> </RealStream> <GeneralData><!--dependent, third-party data--> <SrcAddress><!--IP address of data source --> <ipVersion opt="v4,v6,dual"><!--required, xs:string, IP address type--></ipVersion> <ipAddress><!--dependent, xs:string--></ipAddress> <ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address> </SrcAddress> <dataType opt="popPic,call"><!--optional, xs:string, third-party data type: "popPic"-pop-up image, call--></dataType> </GeneralData> <dataSourceUrl><!--dependent, xs:string, data source URL, this field is valid only when the dynamic material is data source and StorageInfo exits; only 8520 platform has the data source material--></dataSourceUrl> </DynamicMaterial> </Material>