本机模式(nxsd):以FS和GS分隔的文件



我需要为FS(文件分隔符)和GS(组分隔符)分隔的文件创建本机模式NXSD。有人能帮我一下吗?我不能创造一个。非常感谢你的帮助。下面是架构。我需要FS和GS分隔符的值终止…如果我用分号(;)或逗号(,)结束XSD,则它可以正常工作。我将在SOA中使用FT适配器阅读这些类型的文件…

<?xml version= '1.0' encoding= 'UTF-8' ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
     xmlns:tns="http://www.oracle.com/ApplicationObjectLibrary/GEMS/GEMSMessage/V1" targetNamespace="http://www.oracle.com/ApplicationObjectLibrary/GEMS/GEMSMessage/V1"
     elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:version="NXSD" nxsd:stream="chars"
     nxsd:encoding="ASCII">
    <xsd:element name="GEMSMessage">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="GEMS" minOccurs="1" maxOccurs="1" nxsd:lookFor="ST">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ST" type="xsd:string" 
                                 minOccurs="0" maxOccurs="1" default="ST" nxsd:style="terminated"
                                         nxsd:terminatedBy=";"> --What will be nxsd:terminatedBy value for FS
                            </xsd:element>
                            <xsd:element name="STValue" type="xsd:string"
                                 minOccurs="0" maxOccurs="1" nxsd:style="terminated"
                                         nxsd:terminatedBy=";"/> -- --What will be nxsd:terminatedBy value for GS
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

如果FS和GS指的是字符x1C和x1D(^和^]),那么在任何XML技术中处理它们都会很困难:它们不允许在任何XML文档中作为文字字符出现(尽管在XML 1.1中可以使用数字字符引用来引用它们)。

在尝试用XSD(或您所说的"NXSD"的任何模式语言)验证输入数据或使用基于xml的工具处理它之前,最好编写一个简单的shim将输入数据转换成某种更兼容xml的形式。

最新更新