#xml #xsd #metadata
#xml #xsd #метаданные
Вопрос:
Я не совсем уверен, как объяснить этот вопрос, но я сделаю все возможное, чтобы прояснить его. В настоящее время я пишу файл .xsd для создания файла метаданных для наборов данных. Когда я пытаюсь использовать его для отображения в Excel, возникают ошибки, которые исчезают, только если я задаю форму действительно беспорядочным и не удобным для пользователя способом. Мне просто интересно, есть ли удобный для пользователя способ, чтобы другие могли генерировать файлы метаданных XML из моей схемы? У людей, использующих его, не будет большого опыта кодирования, и он будет использоваться для множества разных наборов данных.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Data-set">
<xsd:complexType>
<xsd:sequence>
<xsd:element name= "DataUniqueIdentifier"/>
<xsd:element minOccurs="0" maxOccurs="1" name="ProjectInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ProjectName"/>
<xsd:element name="ProjectCode"/>
<xsd:element name="ProjectLead"/>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="ProjectSponsors"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Authors">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="LastName"/>
<xsd:element name="FirstName"/>
<xsd:element name="Email"/>
<xsd:element name="Affiliation"/>
<xsd:element name="Role"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="DataInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DatasetTitle"/>
<xsd:element name="StudyStartDate" type="xsd:date"/>
<xsd:element name="StudyEndDate" type="xsd:date"/>
<xsd:element name="EstimatedStudyCompletionDate" type="xsd:date"/>
<xsd:element name="PublicationDate" type="xsd:date"/>
<xsd:element name="DataLocation" type="xsd:string"/>
<xsd:element minOccurs ="0" maxOccurs ="5" name ="Keywords"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name= "DataUsageRights" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="DataAbstract">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="InstrumentsUsed"/>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="AquisitionMethods"/>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="ProcessingMethods"/>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="SoftwareUsed"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="DataDescription">
<xsd:complexType>
<xsd:sequence>
<xsd:element name ="Completion"/>
<xsd:element name ="ObservationCount"/>
<xsd:element name ="VariableCount"/>
<xsd:element name ="NACount"/>
<xsd:element name ="DatasetState"/>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="AnalysisPerformed"/>
<xsd:element minOccurs ="0" maxOccurs ="unbounded" name ="PapersPublished"> #ISSUE
<xsd:complexType>
<xsd:sequence>
<xsd:element name ="PaperTitle"/> #ISSUE
<xsd:element name ="URL"/> #ISSUE
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="DataDescriptors">
<xsd:complexType>
<xsd:sequence>
<xsd:element name ="VariableName"/>
<xsd:element name ="DataType"/>
<xsd:element name ="VariableDescription"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="DataFileInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name ="FileFormat"/>
<xsd:element name ="FileSize"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Надеюсь, я объяснил это достаточно хорошо, любая помощь будет принята с благодарностью.
Ответ №1:
Ваш вопрос очень открытый, и, похоже, к нему не прилагается много подробностей. Поэтому будет сложно ответить на этот вопрос так, чтобы он подходил именно вам.
Если я правильно понимаю ваш вопрос, вы говорите о ситуации, когда у вас есть XML-схема (XSD), и вы хотите «сгенерировать» XML-файл на основе этой схемы без какого-либо кодирования.
На ум приходят редакторы на основе графического интерфейса, такие как OxygenXML, которые позволяют загружать XSD, а затем предоставлять автозаполнение, «представления сетки» и другие инструменты, упрощающие / упрощающие написание XML-базы на XSD. Кроме того, проверка XSD также встроена прямо в редактор. Существуют альтернативы OxygenXML, которые вы легко найдете в Интернете, ища такие вещи, как редактор XML, разработка XML, XML IDE и тому подобное.
Если этот ответ вам не поможет, я бы рекомендовал вам добавить больше информации к вашим вопросам.
Комментарии:
1. Привет, Джоэл, спасибо за ответ. Я знал, что ответить на этот вопрос будет сложно, поскольку я изо всех сил пытался его сформулировать. Это соответствует тому, что я ищу. Я в порядке с настройкой кодирования, оно просто должно быть аккуратным и простым в использовании для конечного пользователя, поскольку у них практически не будет опыта кодирования. Я рассмотрю эти варианты и свяжусь с вами.
Ответ №2:
У Oxygen есть инструмент для создания экземпляра документа из схемы. С небольшой настройкой параметров я сгенерировал этот экземпляр:
<?xml version="1.0" encoding="UTF-8"?>
<Data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:/Users/mike/Desktop/temp/test.xsd">
<DataUniqueIdentifier>
</DataUniqueIdentifier>
<ProjectInformation>
<ProjectName>
</ProjectName>
<ProjectCode>
</ProjectCode>
<ProjectLead>
</ProjectLead>
<ProjectSponsors>
</ProjectSponsors>
<ProjectSponsors>
</ProjectSponsors>
</ProjectInformation>
<Authors>
<LastName>
</LastName>
<FirstName>
</FirstName>
<Email>
</Email>
<Affiliation>
</Affiliation>
<Role>
</Role>
</Authors>
<Authors>
<LastName>
</LastName>
<FirstName>
</FirstName>
<Email>
</Email>
<Affiliation>
</Affiliation>
<Role>
</Role>
</Authors>
<DataInformation>
<DatasetTitle>
</DatasetTitle>
<StudyStartDate>2006-05-04</StudyStartDate>
<StudyEndDate>2006-05-04</StudyEndDate>
<EstimatedStudyCompletionDate>2006-05-04</EstimatedStudyCompletionDate>
<PublicationDate>2006-05-04</PublicationDate>
<DataLocation>DataLocation0</DataLocation>
<Keywords>
</Keywords>
<Keywords>
</Keywords>
</DataInformation>
<DataUsageRights>DataUsageRights0</DataUsageRights>
<DataAbstract>
<InstrumentsUsed>
</InstrumentsUsed>
<InstrumentsUsed>
</InstrumentsUsed>
<AquisitionMethods>
</AquisitionMethods>
<AquisitionMethods>
</AquisitionMethods>
<ProcessingMethods>
</ProcessingMethods>
<ProcessingMethods>
</ProcessingMethods>
<SoftwareUsed>
</SoftwareUsed>
<SoftwareUsed>
</SoftwareUsed>
</DataAbstract>
<DataDescription>
<Completion>
</Completion>
<ObservationCount>
</ObservationCount>
<VariableCount>
</VariableCount>
<NACount>
</NACount>
<DatasetState>
</DatasetState>
<AnalysisPerformed>
</AnalysisPerformed>
<AnalysisPerformed>
</AnalysisPerformed>
<PapersPublished>
<PaperTitle>
</PaperTitle>
<URL>
</URL>
</PapersPublished>
<PapersPublished>
<PaperTitle>
</PaperTitle>
<URL>
</URL>
</PapersPublished>
</DataDescription>
<DataDescriptors>
<VariableName>
</VariableName>
<DataType>
</DataType>
<VariableDescription>
</VariableDescription>
</DataDescriptors>
<DataDescriptors>
<VariableName>
</VariableName>
<DataType>
</DataType>
<VariableDescription>
</VariableDescription>
</DataDescriptors>
<DataFileInformation>
<FileFormat>
</FileFormat>
<FileSize>
</FileSize>
</DataFileInformation>
</Data-set>
который пользователи могут счесть полезным в качестве шаблона для редактирования. Это то, что вы имели в виду?
Конечно, вы можете изменить шаблон, например, добавив комментарии, указывающие, что означают поля.
Но на самом деле вы хотите создать форму (возможно, с использованием XForms), которая позволяет пользователям вводить данные, не видя никаких угловых скобок.