【发布时间】:2015-12-31 12:39:22
【问题描述】:
我必须生成以下格式的 xml -
<?xml version="1.0" encoding="utf-8"?>
<ns0:ZINVS xmlns:ns0="http://STATOIL_BarcodeScanning_Schema">
<CommonFields>
<CompanyCode>02605</CompanyCode>
<ScannerID>DST10739:Sess 2</ScannerID>
<ScanningDate>2015-08-05</ScanningDate>
<ScanningDocumentDescription>SPLITS0508</ScanningDocumentDescription>
<ScanningDocumentID>299876_ILOLEJ</ScanningDocumentID>
<ScanningOperatorID>ILOLEJ</ScanningOperatorID>
<ScanningTime>15:16:09</ScanningTime>
</CommonFields>
<SpecificFields>
<DocumentNumber>15000560</DocumentNumber>
<DocumentType>JL</DocumentType>
<FiscalYear>15</FiscalYear>
<LineNo>1.000</LineNo>
<UserID>ILOLEJ</UserID>
<BarcodeNumber>7882</BarcodeNumber>
<DocumentID>7882</DocumentID>
但是当 xml 生成时,它就像 -
<?xml version="1.0" encoding="utf-8"?>
<ns0:ZINVS xmlns:ns0="http://STATOIL_BarcodeScanning_Schema" xmlns="http://www.w3.org/2001/XMLSchema" >
<CommonFields>
<CompanyCode>02605</CompanyCode>
<ScannerID>DST10739:Sess 2</ScannerID>
<ScanningDate>2015-08-05</ScanningDate>
<ScanningDocumentDescription>SPLITS0508</ScanningDocumentDescription>
<ScanningDocumentID>299876_ILOLEJ</ScanningDocumentID>
<ScanningOperatorID>ILOLEJ</ScanningOperatorID>
<ScanningTime>15:16:09</ScanningTime>
</CommonFields>
<SpecificFields>
<DocumentNumber>15000560</DocumentNumber>
<DocumentType>JL</DocumentType>
<FiscalYear>15</FiscalYear>
<LineNo>1.000</LineNo>
<UserID>ILOLEJ</UserID>
<BarcodeNumber>7882</BarcodeNumber>
<DocumentID>7882</DocumentID>
</SpecificFields>
</ns0:ZINVS>
另外,找到 XSD 为 -
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://STATOIL_BarcodeScanning_Schema"
targetNamespace="http://STATOIL_BarcodeScanning_Schema" elementFormDefault="qualified">
<xsd:element name="ZINVS">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CommonFields">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CompanyCode" type="xsd:integer"/>
<xsd:element name="ScannerID" type="xsd:string"/>
<xsd:element name="ScanningDate" type="xsd:string"/>
<xsd:element name="ScanningDocumentDescription" type="xsd:string"/>
<xsd:element name="ScanningDocumentID" type="xsd:string"/>
<xsd:element name="ScanningOperatorID" type="xsd:string"/>
<xsd:element name="ScanningTime" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SpecificFields">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DocumentNumber" type="xsd:integer"/>
<xsd:element name="DocumentType" type="xsd:string"/>
<xsd:element name="FiscalYear" type="xsd:integer"/>
<xsd:element name="LineNo" type="xsd:float"/>
<xsd:element name="UserID" type="xsd:string"/>
<xsd:element name="BarcodeNumber" type="xsd:integer"/>
<xsd:element name="DocumentID" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
XSLT 映射为 -
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
xmlns:oraxsl="http://www.oracle.com/XSL/Transform/java"
xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/top/dbService" xmlns:xsi="http://xmlns.oracle.com/pcbpel/adapter/db/top/dbService"
xmlns:oracle-xsl-mapper="http://www.oracle.com/xsl/mapper/schemas"
xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://STATOIL_BarcodeScanning_Schema"
xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
exclude-result-prefixes="xsi oracle-xsl-mapper xsl xsd ns0 tns xp20 oraxsl mhdr oraext dvm xref socket"
>
<oracle-xsl-mapper:schema>
<!--SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY.-->
<oracle-xsl-mapper:mapSources>
<oracle-xsl-mapper:source type="WSDL">
<oracle-xsl-mapper:schema location="../WSDLs/dbService.wsdl"/>
<oracle-xsl-mapper:rootElement name="XmldemoCollection"
namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/dbService"/>
</oracle-xsl-mapper:source>
</oracle-xsl-mapper:mapSources>
<oracle-xsl-mapper:mapTargets>
<oracle-xsl-mapper:target type="WSDL">
<oracle-xsl-mapper:schema location="../WSDLs/fileReference.wsdl"/>
<oracle-xsl-mapper:rootElement name="ZINVS" namespace="http://STATOIL_BarcodeScanning_Schema"/>
</oracle-xsl-mapper:target>
</oracle-xsl-mapper:mapTargets>
<!--GENERATED BY ORACLE XSL MAPPER 12.1.3.0.0(XSLT Build 140529.0700.0211) AT [SAT OCT 03 16:01:58 IST 2015].-->
</oracle-xsl-mapper:schema>
<!--User Editing allowed BELOW this line - DO NOT DELETE THIS LINE-->
<xsl:template match="/">
<ns0:ZINVS xmlns="http://www.w3.org/2001/XMLSchema">
<CommonFields>
<CompanyCode>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data"/>
</CompanyCode>
<ScannerID>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data1"/>
</ScannerID>
<ScanningDate>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data2"/>
</ScanningDate>
<ScanningDocumentDescription>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data3"/>
</ScanningDocumentDescription>
<ScanningDocumentID>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data4"/>
</ScanningDocumentID>
<ScanningOperatorID>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data5"/>
</ScanningOperatorID>
<ScanningTime>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</ScanningTime>
</CommonFields>
<SpecificFields>
<DocumentNumber>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</DocumentNumber>
<DocumentType>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</DocumentType>
<FiscalYear>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</FiscalYear>
<LineNo>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</LineNo>
<UserID>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</UserID>
<BarcodeNumber>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</BarcodeNumber>
<DocumentID>
<xsl:value-of select="/tns:XmldemoCollection/tns:Xmldemo/tns:data6"/>
</DocumentID>
</SpecificFields>
</ns0:ZINVS>
</xsl:template>
</xsl:stylesheet>
我想使用 XSLT 从 ZINVS 元素中删除 xmlns="http://www.w3.org/2001/XMLSchema",因为映射是使用 XSLT 完成的。我不确定我在哪里犯了错误,因为我是新手这。你们能请我解决这个问题吗?
【问题讨论】:
-
您使用什么软件来生成 XML?它不应该将两个不同的 xmlns 属性放入同一个元素中。
-
您好,我正在使用 Jdeveloper 从正确的 XML 生成 XSD。在创建 XSD 时,我将目标名称空间设置为 -STATOIL_BarcodeScanning_Schema。这是问题吗?我是否只生成了错误的 XSD?
标签: xml xslt namespaces