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

时间:2014-06-12 10:49:58

标签: xml xsd wsdl soa xsd-validation

我需要为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>

1 个答案:

答案 0 :(得分:0)

如果FS和GS表示字符x1C和x1D(^ \和^]),那么在任何XML技术中处理它们都会很困难:它们不允许在任何XML文档中显示为文字字符(虽然在XML 1.1中可以使用数字字符引用来引用它们。

您可能最好编写一个简单的垫片,将输入数据转换为更兼容XML的形式,然后再尝试使用XSD验证它(或者您引用的任何模式语言&#39; NXSD&# 39;)或使用基于XML的工具处理它。